Zeichen: Unterschied zwischen den Versionen

Keine Bearbeitungszusammenfassung
 
(Eine dazwischenliegende Version desselben Benutzers wird nicht angezeigt)
Zeile 31: Zeile 31:
* Kompatibilität: Ein alter Text, der nur ASCII-Zeichen enthält, ist automatisch auch ein gültiger Unicode-Text (speziell im Format UTF-8).
* Kompatibilität: Ein alter Text, der nur ASCII-Zeichen enthält, ist automatisch auch ein gültiger Unicode-Text (speziell im Format UTF-8).
* Speichereffizienz: Da die gängigsten lateinischen Buchstaben in den niedrigen Zahlenbereichen liegen, können sie in Unicode-Formaten wie UTF-8 weiterhin mit nur einem Byte (8 Bit) gespeichert werden.
* Speichereffizienz: Da die gängigsten lateinischen Buchstaben in den niedrigen Zahlenbereichen liegen, können sie in Unicode-Formaten wie UTF-8 weiterhin mit nur einem Byte (8 Bit) gespeichert werden.
=== Umsetzung in Java ===
Du kannst eine [[Variable (Informatik)|Variable]] vom [[Datentyp]] char in [[Java]] direkt einer int-Variable zuweisen. Java erledigt die Umwandlung dann automatisch, da ein int mehr Platz bietet als ein char.
<syntaxhighlight lang="java">
char meinZeichen = '$';
int asciiWert = meinZeichen; // Automatische Umwandlung
</syntaxhighlight>
In einer [[Schleife]] können die Char eines String [[Objekt|Objektes]] zeichenweise umgewandelt werden::
<syntaxhighlight lang="java">
String inputText = "Hallo";
for (char c : inputText.toCharArray()) {
    int ascii = c; // Jedes Zeichen wird hier zum ASCII-Wert
   
}</syntaxhighlight>
Da die ersten 127 Zeichen von Unicode identisch mit ASCII sind, funktioniert die Umwandlung für Unicode hier genauso.
<syntaxhighlight lang="java">
char meinZeichen = 'A';
int unicodeWert = (int) meinZeichen;
System.out.println(unicodeWert); // Gibt 65 aus
</syntaxhighlight>
Unicode ist viel größer als ASCII und umfasst weit mehr als 65.536 Zeichen. Einige moderne Zeichen (wie Emojis oder seltene Schriftzeichen) passen nicht mehr in einen einzelnen 16-Bit char. In Java nennt man diese Werte Code Points. Um den absolut sicheren Unicode-Wert zu erhalten, nutzt man die Methode codePointAt:
<syntaxhighlight lang="java">
String text = "A";
int codePoint = text.codePointAt(0);
System.out.println(codePoint); // Gibt 65 aus
</syntaxhighlight>


== Vom Zeichen zum Wissen ==
== Vom Zeichen zum Wissen ==