Zeichen: Unterschied zwischen den Versionen
Thomas (Diskussion | Beiträge) Keine Bearbeitungszusammenfassung |
Thomas (Diskussion | Beiträge) |
||
| 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 | |||
// Hier folgt deine Caesar-Logik... | |||
}</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 == | ||