Heim >Java >javaLernprogramm >Warum konvertiert mein Java-Code eine Ganzzahl in ein nicht druckbares Zeichen?
Ganzzahl in Zeichen in Java konvertieren: Ein Vergleich
Das Verständnis der Zeichen- und Ganzzahlkonvertierung in Java kann schwierig sein. Sehen wir uns die folgenden Codeausschnitte an:
int a = 1; char b = (char) a; System.out.println(b);
Erwartungsgemäß sollte dieser Code das Zeichen „1“ ausgeben. Es wird jedoch eine leere Ausgabe erzeugt. Um dies zu verstehen, müssen wir tiefer in den Typkonvertierungsprozess eintauchen.
Die Zuweisung char b = (char) a wandelt die Ganzzahl a (die Zahl 1) in ein Zeichen um. Bei dieser Konvertierung wird das Zeichen tatsächlich mit dem Unicode-Codepunkt gespeichert, der dem ganzzahligen Wert entspricht. Beispielsweise ist der Unicode-Codepunkt für „1“ 49, während der Unicode-Codepunkt für das Anfangszeichen der Überschrift 1 ist. Da die ganze Zahl a 1 ist, wird sie in das Anfangszeichen der Überschrift konvertiert ist nicht druckbar.
Im Gegensatz dazu das folgende Code-Snippet:
int a = '1'; char b = (char) a; System.out.println(b);
Erzeugt die erwartete Ausgabe „1“. Dies liegt daran, dass die Zuweisung int a = '1' a mit dem ASCII-Wert '1' (also 49) und nicht mit dem Ganzzahlwert 1 initialisiert.
Um eine Ganzzahl wie in der vorgesehen in ein Zeichen umzuwandeln Im ersten Snippet können Sie die folgenden Ansätze verwenden:
Verwenden Sie Character.forDigit() Methode: Dies wandelt eine Ziffer zwischen 0 und 9 in das entsprechende Zeichen um.
int a = 1; char b = Character.forDigit(a, 10); System.out.println(b); // Prints '1'
Füge 48 zur Ganzzahl hinzu und wandele Folgendes um: Dieser Ansatz basiert auf auf der Tatsache, dass die Unicode-Codepunkte für Ziffern 48 höher sind als die Ziffer Werte.
int a = 1; char b = (char) (a + 48); System.out.println(b); // Prints '1'
Verwenden Sie die Methode Character.toChars(): Dadurch wird ein Unicode-Codepunkt in das entsprechende Zeichenarray konvertiert.
int a = 1; char[] b = Character.toChars(a); System.out.println(b[0]); // Prints '1'
Das obige ist der detaillierte Inhalt vonWarum konvertiert mein Java-Code eine Ganzzahl in ein nicht druckbares Zeichen?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!