Heim > Java > javaLernprogramm > Warum führt die Konvertierung von „1' in ein Zeichen in Java zu einer leeren Ausgabe?

Warum führt die Konvertierung von „1' in ein Zeichen in Java zu einer leeren Ausgabe?

Mary-Kate Olsen
Freigeben: 2024-11-15 07:42:02
Original
868 Leute haben es durchsucht

Why Does Converting `1` to a Character in Java Result in an Empty Output?

Enthüllung der Geheimnisse der Konvertierung von Ganzzahlen in Zeichen in Java

Die Konvertierung von Ganzzahlen in Zeichen in Java ist eine häufige Aufgabe, kann aber ansonsten verwirrend sein richtig verstanden. Dieser Artikel beleuchtet die Feinheiten dieser Konvertierung und bietet Lösungen für potenzielle Probleme.

Das Geheimnis hinter der leeren Ausgabe

Beachten Sie den Codeausschnitt unten:

int a = 1;
char b = (char) a;
System.out.println(b);
Nach dem Login kopieren

In diesem Fall ist die Ausgabe eine leere Zeichenfolge. Der Grund dafür liegt im von Java verwendeten Unicode-Codierungsschema. Wenn die Ganzzahl a mithilfe der (char)-Umwandlung in ein Zeichen umgewandelt wird, wird sie als Unicode-Codepunkt 1 interpretiert, der dem Anfangszeichen der Überschrift entspricht. Dieses Zeichen ist nicht druckbar, daher die leere Ausgabe.

Der „1“-Trick

Im Gegensatz dazu gibt das folgende Codefragment das Zeichen „1“ aus:

int a = '1';
char b = (char) a;
System.out.println(b);
Nach dem Login kopieren

Das liegt daran, dass die einfachen Anführungszeichen in der Initialisierung von a darauf hinweisen, dass es sich um ein Zeichenliteral handelt. In diesem Fall entspricht das Zeichen „1“ dem Unicode-Codepunkt 49, also dem Zeichen „1“.

Ziffern in Zeichen umwandeln

Auf Wunsch Um eine Ziffer (0-9) in ein Zeichen umzuwandeln, können Sie 48 zur Ziffer hinzufügen und sie dann in a umwandeln Zeichen:

int digit = 7;
char c = (char) (digit + 48);
System.out.println(c); // Output: '7'
Nach dem Login kopieren

Alternativ können Sie die Methode Character.forDigit() verwenden:

int digit = 7;
char c = Character.forDigit(digit, 10);
System.out.println(c); // Output: '7'
Nach dem Login kopieren

Unicode-Codepunkte in Zeichen konvertieren

Um eine Ganzzahl, die einen Unicode-Codepunkt darstellt, in ein Zeichen umzuwandeln, können Sie die Funktion Character.toChars() verwenden. Methode:

int codePoint = 65;
char[] chars = Character.toChars(codePoint);
char c = chars[0];
System.out.println(c); // Output: 'A'
Nach dem Login kopieren

Wenn Sie diese Techniken verstehen, können Sie Ganzzahlen in Java sicher in Zeichen konvertieren und so Verwirrung oder unerwartete Ausgaben vermeiden.

Das obige ist der detaillierte Inhalt vonWarum führt die Konvertierung von „1' in ein Zeichen in Java zu einer leeren Ausgabe?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Quelle:php.cn
Erklärung dieser Website
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn
Neueste Artikel des Autors
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage