Kleinbuchstabe in Großbuchstabe

Hallöchen :slight_smile: Ich mal wieder mit einer wahrscheinlich ganz doofen Frage :smiley:

Es geht darum einen eingegebenen Kleinbuchstaben in einen Großbuchstaben umzuwandeln.
Folgendermaßen läuft’s bei mir:

public class Aufgabe_25 {


	/* ----------Hauptprozedur---------- */
	public static void main(String[] args) {
		char buchstabe1 = IO.readChar("Kleinbuchstabe: ");
		int buchstabe2 = (int) buchstabe1;
		buchstabe2 = buchstabe2 - 32;
		buchstabe1 = (char) buchstabe2;
		System.out.println("Großbuchstabe: "+buchstabe1);
	}
}

Jetzt sagt man mir, dass es auch ohne cast gehen soll.
So würde ich mir das jetzt denken:

public class Aufgabe_25 {


	/* ----------Hauptprozedur---------- */
	public static void main(String[] args) {
		char buchstabe = IO.readChar("Kleinbuchstabe: ");
		buchstabe = buchstabe - 32;
		System.out.println("Großbuchstabe: "+buchstabe);
	}
}

Auf diese Weise läuft es aber nicht bei mir.
Woran liegt das?

Gaaanz lieben Dank schonmal im Voraus :slight_smile:

Macht ihr das absichtlich so? Um mit primitiven Datentypen zu jonglieren? Oder kanntest du die toUpperCase()-Methode von String nicht?

Ohne einen Cast wirds wohl nicht klappen. Eine Diskussion dazu kannst du hier nachlesen: http://www.coderanch.com/t/544478/java/java/Operations-characters

So klappts aber:
buchstabe = (char) (buchstabe + 32);

buchstabe -= 32;

So brauchst du nicht zu casten.

Gruss Pascal

[QUOTE=Gonzo]Oder kanntest du die toUpperCase()-Methode von String nicht?
[/QUOTE]

Nein, die kenne ich nicht, muss ich mir wohl mal genau angucken :slight_smile: Danke für den Hinweis :slight_smile:

        char großBuchstabe = Character.toUpperCase(buchstabe);
        System.out.println("Großbuchstabe: " + großBuchstabe);```
das funktioniert nicht?

[QUOTE=phpascal]buchstabe -= 32;

So brauchst du nicht zu casten.

Gruss Pascal[/QUOTE]

Ein Fuchs! Stimmt, das macht sogar Sinn. :slight_smile: Danke für die Idee.