# String buchstaben in Zahlen umwandeln



## Gast (20. Feb 2007)

Hallo 

ich möchte z.B. AAABGDEEF für A,F=0, B=1,G=2,D=3 umwandeln.
so funktioniert es, aber sieht irgendwie ziemlich viel code aus. Wenn ich es dann erweitern möchte
z.B A,C,H=0 und B,R=1. (das ganze alphabet) dann muss ich viel mit replace machen...

```
String test="ACHBR"
char testArr[] = test.toCharArray();
		int length=testArr.length;
		
		for (int i=0;i<length;i++){
	
			String testx=String.valueOf(testArr[i]);
			String upper = test.toUpperCase();
			String blub=upper.replaceAll("A","0").replaceAll("C","0").replaceAll("H","0").replaceAll("B","1").replaceAll("R","1");
	System.out.print(blub);
```

kann man es anders lösen?


----------



## WieselAc (20. Feb 2007)

Prinizipiell ist dein Vorgehen schon richtig, aber sehr umständlich. Warum nicht zwei Arrays (value/key) Dann nen doppelten Schleifen durchlauf und wenn ein Buchstabe passt, ersetzten.

Hier mal eine Variante in der Art wie ich es mir vorstellen könnte:


```
public static void main(String[] args) {

        char[] key = { 'A', 'B', 'C', 'H', 'R' };
        int[] value = { 0, 0, 0, 1, 1 };
        String test = "ACHBR";
        test = test.toUpperCase();
        
        StringBuffer result = new StringBuffer();
        for (int i = 0; i < test.length(); i++) {
            char current = test.charAt(i);
            for (int j = 0; j < key.length; j++) {
                if (current == key[j]) {
                    result.append(value[j]);
                    break;
                }
            }
        }
        System.out.print(result);
    }
```


----------



## Gast (20. Feb 2007)

hey cool thx.....das ist um einiges einfacher


----------



## mephi (20. Feb 2007)

hm. ich schrecke generell vor nicht injektiven funktionen zurück. d.h. du hast für mehrere inputs den selben output damit kannst du so keine umkehrfunktion benutzen um von einem output auf den input zu kommen.

aber vielleicht musst du das ja auch garnicht


----------



## Gast (20. Feb 2007)

eigentlich ist es einfach nur dafür da um aus einer willkürlicher Reihenfolge von Buchstaben für jede bestimmte buchstabe eine Zahl zuverwenden. Zurück muss ich ja nicht, da ich in einer Variable den String habe mit buchstaben und im anderen die Zahlen.


----------



## Gast (23. Nov 2008)

ku8 64444444444444444444444444444444444444444444444444444444444jhm nnnnnnnbbbbbbbbbbbhhhhhhhhhhhhhhhhhhhhhhhhhhhhhh


----------

