21 Mehr über den Typ Char
21.1 Char-Manipulationen

 
Wie 'liegt ein char im Speicher'? Der Datentyp char zählt zu den Grunddatentypen. Das liegt daran, dass der Wert einer char-Variablen im Speicher als eine ganze Zahl verwaltet wird und erst bei Ausgaben wieder als Zeichen interpretiert wird.  Deshalb verwundert nicht, dass die Zuweisung in Zeile 3 des nachfolgenden Programmauszugs vom Compiler akzeptiert wird (eine entsprechende Zuweisung bei einer Zeichenkette an Stelle eines einzelnen Zeichens verweigerte der Compiler das Übersetzen.

String satz = "Java-ist-toll";
char zeichen = satz.charAt(2);
int num = zeichen;
System.out.println(num + ": " + (char)num);
 

nochmal explizites Casten Wie die letzte Zeile des Quellcodes zeigt, lässt sich ein numerisches Zeichen vom Typ int problemlos explizit zu einem char casten, was zur Folge hat, dass die Zahl, die in num angelegt ist  bei der Ausgabe wieder als ein Zeichen interpretiert wird.

Die Ausgabe sieht also so aus:

118: v
 

Manipulation

Download:
Verschieben.java

Damit haben wir eine Möglichkeit in der Hand, Zeichen zu manipulieren. Das nachfolgende Programm zeigt, wie Zeichen für Zeichen eines Textes durch sein Nachfolgezeichen in einem neuen Text 'ersetzt' wird. Tatsächlich lässt sich in einem String grundsätzlich kein Zeichen ersetzen. Es wird eine neue Zeichenkette aufgebaut.
public class Verschieben{
   public static void main(String[] args){
      String text1 = "Java ist toll";
      String text2 = "";
      char zeichen;
      int zeichenZahl;
      for (int i = 0; i < text1.length();i++){
         zeichen = text1.charAt(i);
         //hier erfolgt die Interpretation des Zeichens 
         //als Zahl)
         zeichenZahl = zeichen+1; 
         //explizites Casten
         text2 = text2 + (char)zeichenZahl; 
      }
      System.out.println(text1);
      System.out.println(text2);
   }
}

 

Man beachte, dass auch die Leerzeichen verschoben sind.

   
zu 22.2 ASCII-Code
zur Startseite www.pohlig.de  (C) MPohlig 2003