23.4 DatenTyp char
 
Wie 'liegt ein char im Speicher'? Der Datentyp char zählt zu den Grunddatentypen. Der Wert einer char-Variablen wird im Speicher als eine ganze Zahl verwaltet wird und erst bei Ausgaben wieder als Zeichen interpretiert.  Deshalb verwundert nicht, dass die Zuweisung in der 3. Zeile 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'1) wird.

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);
   }
}
 

  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.

Im Ausgabefenster steht:

Java ist toll
Kbwb!jtu!upmm

 

Fußnoten  

1)

Tatsächlich lässt sich in einem String grundsätzlich kein Zeichen ersetzen. Deshalb muss die Zeichenkette Zeichen für Zeichen neu aufgebaut werden. Einen Ausweg bietet die Klasse StringBuffer. [zurück]
  23.5 ASCII-Kode
zur Startseite www.pohlig.de  (C) MPohlig 2004