# String (mit Buchstaben) zu Int



## MaxFroschX (23. Dez 2010)

Hi!

Ich hab ein Problem, und zwar versuche ich gerade einen String zu verschlüsseln, indem ich zu jedem Buchstaben zB 3 hinzufüge (also zB aus "ael" wird  "dho") ich versuche also:


```
for ( i = 0; i < passwort.length(); i ++ ){
					
					String passwortneu = passwort.charAt(i) + 3;
}
```

geht logischerweise nicht, weil 
	
	
	
	





```
passwort.charAt(i) + 3
```
 ja kein String ist.

wenn ich 
	
	
	
	





```
passwort.charAt(i) + 3
```
 normal umwandle geht es ja nur wenn nur Buchstaben vorkommen, aber ich muss es irgendwie trotzdem umwandeln...

Ich hoffe ihr versteht in etwa was ich meine!

LG


----------



## tfa (23. Dez 2010)

Schau dir die Klasse StringBuffer an. Hiermit kannst du Strings zusammenbauen und auch einzelne Zeichen verändern.


----------



## XHelp (23. Dez 2010)

Du erstellst hier auch immer wieder irgendein neuen String. Das was du vorhast nennt sich Caesar-Verschlüsselung. Darüber existieren bereits diverse Threads


----------



## preachie (23. Dez 2010)

Zwei Beispiele in einem, einmal mit nem char[] und einmal mit nem StringBuffer


```
String passwort = "hallo";
		char[] passwortneu = new char[passwort.length()];

		StringBuffer sb = new StringBuffer("hallo");

		for ( int i = 0; i < passwort.length(); i ++ ){
            
            passwortneu[i] = (char)(passwort.charAt(i) + 3);
    		sb.setCharAt(i, (char)(sb.charAt(i) + 3));
		}
		
		System.out.println(new String(passwortneu));
		System.out.println(sb);
```


----------



## MaxFroschX (23. Dez 2010)

Danke für die schnelle Antwort!

Habs jetzt so gelöst:


```
String passwortneu = "";
				
				for ( i = 0; i < passwort.length(); i ++ ){
					passwortneu = passwortneu + (char)((int)passwort.charAt(i) + 3);
				}
```


----------



## Antoras (23. Dez 2010)

Unzureichender Lösungsweg. Strings sind unveränderlich und deswegen verdammt langsam weil du bei jeder Veränderung immer wieder einen neuen allokierest - verwende stattdessen einen StringBuilder und wandle diesen erst am Schluss in einen String.


----------



## MaxFroschX (23. Dez 2010)

```
StringBuilder passwortneu = new StringBuilder();
				
				for ( i = 0; i < passwort.length(); i ++ ){
					passwortneu.append((char)((int)passwort.charAt(i) + (i+7)));
				}
```

Danke Antoras!


----------

