# Kleinbuchstaben in Großbuchstaben umwandeln



## updater (10. Nov 2010)

Hallo Leute,

Ich will ein kleines Programm schreiben, das das selbe macht wie die Methode toUpperCase() von der Klasse String,d.h. alle Kleinbuchstaben in einem String sollen in Großbuchstaben umgewandelt werden.
Dabei will ich mit charAt() arbeiten.
Dies ist mein Code:


```
public static void main(String[] args) {
		print("Eingabe: ");
		String eingabe;
		eingabe =readLine();
		int i = 0;
		
		while(i< eingabe.length()) {
			
		
			if(eingabe.charAt(i) > 96 && eingabe.charAt(i) < 123) {
				
				print(eingabe.charAt(i) - 32);
			} else {
				print(eingabe.charAt(i));
			}
			i++;

	}
}
```

Nun habe ich das Problem, dass die Zahlen für die jeweiligen Großbuchstaben ausgegeben werden und nicht der Buchstabe selbst.

Beispiel: 

Eingabe: Hallo Welt
Ausgabe: H65767679 W697684
Gewünschte Ausgabe: HALLO WELT

Wie kann ich das umwandeln? Danke schonmal im Vorraus

mfg

update


----------



## XHelp (10. Nov 2010)

Versuch es mal mit
[JAVA=13]
print((char) (eingabe.charAt(i) - 32));
[/code]


----------



## Gast2 (10. Nov 2010)

Oder aber:


```
for(char c : eingabe.toCharArray()){   
        	if(Character.isLowerCase(c)){
        		print(Character.toUpperCase(c));
        	} else {
        		print(c);
        	} 	
        }
```


----------



## Der Müde Joe (10. Nov 2010)

Es sollten keine 'magic numbers' benutzt werden.

Man kann ohne Probleme auch mit 'z' und 'a' (char) rechnen.
So kann man auch die Differenz zwischen 'a' und 'Z' etc. durch
Rechnen herausfinden. Somit steht im Code nie sowas wie 32 123 oder
sowas....


----------



## XHelp (10. Nov 2010)

fassy hat gesagt.:


> Oder aber:



Wobei es ziemlich witzlos ist die String#toUpperCase umzuschreiben, dafür aber Character#toUpperCase verwenden.


----------



## updater (11. Nov 2010)

Hey Leute,

Danke für die schnellen Antworten, hat mir geholfen!


----------

