Ohne Unterschied macht Gleichheit keinen Spaß. – Dieter Hildebrandt
4 Der Umgang mit Zeichenketten
4.1 Einzelne Zeichen mit der Character-Klasse behandeln 

Die im Kernpaket java.lang angesiedelte Klasse Character bietet eine große Anzahl statischer Funktionen, die im Umgang mit einzelnen Zeichen interessant sind. Dazu gehören Funktionen zum Testen, etwa ob ein Zeichen eine Ziffer, ein Buchstabe oder ein Sonderzeichen ist. Ihnen ist gemeinsam, dass sie alle mit der Vorsilbe is beginnen und ein boolean liefern. Dazu gesellen sich Funktionen zum Konvertieren, etwa in Groß-/Kleinschreibung.
Beispiel für isDigit() und isLetter(): Listing 4.1 CharacterDemo.java, main() System.out.println( Character.isDigit( '0' ) ); // true System.out.println( Character.isDigit( '-' ) ); // false System.out.println( Character.isLetter( 'ß' ) ); // true System.out.println( Character.isLetter( '0' ) ); // false System.out.println( Character.isWhitespace( ' ' ) ); // true System.out.println( Character.isWhitespace( '-' ) ); // false |
final class java.lang.Character
implements Serializable, Comparable<Character> |
- static boolean isDigit( char ch )
Handelt es sich um eine Ziffer zwischen 0 und 9?
- static boolean isLetter( char ch )
Handelt es sich um einen Buchstaben?
- static boolean isLetterOrDigit( char ch )
Handelt es sich um ein alphanumerisches Zeichen?
- static boolean isLowerCase( char ch ), boolean isUpperCase( char ch )
Ein Klein- oder ein Großbuchstabe?
- static boolean isWhiteSpace( char ch )
Ein Leerzeichen, Zeilenvorschub, Return oder Tabulator?
- static boolean isJavaIdentifierStart( char ch )
Ein Java-Buchstabe, mit dem Bezeichner beginnen dürfen.
- static boolean isJavaIdentifierPart( char ch )
Ein Java-Buchstabe oder eine Ziffer, der beziehungsweise die in der Mitte eines Bezeichners vorkommen darf.
- static boolean isTitleCase( char ch )
Sind es spezielle Zwei-Buchstaben-Paare mit gemischter Groß- und Kleinschreibung? Dies kommt etwa im Spanischen vor, wo »lj« für einen einzigen Buchstaben steht. In Überschriften erscheint dieses Paar als »Lj« und wird von dieser Funktion als Sonderfall erkannt. Unter http://www.unicode.org/reports/tr21/tr21-5.html schreibt der Unicode-Standard die Konvertierung vor.
- static char toUpperCase( char ch ), static char toLowerCase( char ch )
Die Funktionen toUpperCase() und toLowerCase() liefern den passenden Groß- beziehungsweise Kleinbuchstaben zurück.
Hinweis Die Funktionen toUpperCase() und toLowerCase() gibt es zweimal: Einmal als statische Funktionen bei Character – dann nehmen sie genau ein char als Argument – und einmal als Objektfunktionen auf String-Exemplaren. Vorsicht ist bei Character.toUpperCase('ß') geboten, denn das Ergebnis ist »ß«, anders als bei der String-Methode toUpperCase("ß"), die das Ergebnis »SS« liefert; einen String, der um eins verlängert ist. |
Die Character-Klasse besitzt ebenso eine Umwandlungsfunktion für Ziffern bezüglich einer beliebigen Basis:
- static int digit( char ch, int radix )
Liefert den numerischen Wert, den das Zeichen ch unter der Basis radix besitzt. Beispielsweise ist Character.digit('f', 16) gleich 15. Erlaubt ist jedes Zahlensystem mit einer Basis zwischen Character.MIN_RADIX (2) und Character.MAX_RADIX (36). Ist keine Umwandlung möglich, beträgt der Rückgabewert –1.
- static char forDigit( int digit, int radix )
Konvertiert einen numerischen Wert in ein Zeichen. Beispielsweise ist Character.forDigit(6, 8) gleich »6« und Character.forDigit(12, 16) ist »c«.