Wie die Unicode-Liste mit den 65.536(?) Zeichen im Java-Programm verwenden?

2 Antworten

Ich verstehe nicht welche Liste du brauchst? Unicode ist einfach eine große Menge von Zahlen, und jede Zahl steht für ein Zeichen (oder einen Teil eines Zeichens). Unicode definiert einfach diese Zuordnung.

Wenn du eine Regel hast um aus einem Unicode-Codepoint eine Aktion durchzuführen, dann schreib dir doch eine Funktion dafür? Ein Wert rein, ein Wert raus...

In Java wird Unicode völlig transparent und vollständig unterstützt, du musst dich eigentlich um gar nichts kümmern. Nur wenn du mit anderen Dingen kommunizierst musst du vlt. aufpassen wie du die Unicode-Codepoints als Bytes darstellst (dafür gibt es UTF-8 oder weniger häufig verwendete Encodings wie UTF-16 etc.)

(int) zeichen

So kannst du einen char in ein int umwandeln.

Also:

altNumpad(robot, "" + ((int) zeichen))

Geht tatsächlich auch andersrum.

Wenn du einen Hex-String brauchst:

Integer.toHexString(val);
Woher ich das weiß:Recherche
verreisterNutzer  07.08.2022, 19:15

Aber ich möchte nicht alle 65.000+ Zeichen einzeln eintragen müssen ...

0
TestNutzung  07.08.2022, 19:26
@verreisterNutzer

Dann benutze eine Schleife.Mit einer Schleife kann man einen Code mehrmals ausführen, mit sich verändernden Variablen. Du findest dafür online Tutorials. In deinem Fall geht es so:

for (char c = 0; c <= Character.MAX_VALUE; c++) {
    altNumpad(robot, "" + ((int) zeichen));
}
0
TestNutzung  07.08.2022, 19:28
@verreisterNutzer

Der Code in der for-Schleife wird für jedes Zeichen, dass durch die Variable c repräsentiert wird, ausgeführt. So kannst du also für jedes Zeichen etwas machen.

1
verreisterNutzer  07.08.2022, 19:46
@TestNutzung

Das ist schon mal ein cooler Ansatz, aber der schreibt mir ganz wierde Sachen.

altNumpad(autoTextRobot, "" + ((int) characterKey));

Ich brauche meines Erachtens nur diesen Teil.

Input: "ا"ختبار auf Deutsch "Test". Ich spreche kein Arabisch, aber ich wollte es damit testen.

Output: '.*('

Auch so was wie "ö" kann der nicht richtig schreiben.

0
LimoDerEchte  08.08.2022, 03:07
@verreisterNutzer
Man kann dann hierdrauf aufbauen. Man kann von 0 bis 65.535 (durch eine for-loop) durchzählen und dann jeweils ((char)wert) -> altNumpad(robot, String.valueOf(wert));
ausführen.
Ich empfehle auch wenn möglich noch UTF-8 encoding zu nutzen, wenn du den int in einen char umwandelst.
Hoffe ich konnte helfen,
Grüße
0