Heim Java javaLernprogramm Warum konvertiert mein Java-Code eine Ganzzahl in ein nicht druckbares Zeichen?

Warum konvertiert mein Java-Code eine Ganzzahl in ein nicht druckbares Zeichen?

Nov 10, 2024 am 03:07 AM

Why Does My Java Code Convert an Integer to an Unprintable Character?

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);
Nach dem Login kopieren

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);
Nach dem Login kopieren

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'
    Nach dem Login kopieren
  • 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'
    Nach dem Login kopieren
  • 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'
    Nach dem Login kopieren

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!

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

Heiße KI -Werkzeuge

Undresser.AI Undress

Undresser.AI Undress

KI-gestützte App zum Erstellen realistischer Aktfotos

AI Clothes Remover

AI Clothes Remover

Online-KI-Tool zum Entfernen von Kleidung aus Fotos.

Undress AI Tool

Undress AI Tool

Ausziehbilder kostenlos

Clothoff.io

Clothoff.io

KI-Kleiderentferner

AI Hentai Generator

AI Hentai Generator

Erstellen Sie kostenlos Ai Hentai.

Heißer Artikel

R.E.P.O. Energiekristalle erklärten und was sie tun (gelber Kristall)
1 Monate vor By 尊渡假赌尊渡假赌尊渡假赌
R.E.P.O. Beste grafische Einstellungen
1 Monate vor By 尊渡假赌尊渡假赌尊渡假赌
Will R.E.P.O. Crossplay haben?
1 Monate vor By 尊渡假赌尊渡假赌尊渡假赌

Heiße Werkzeuge

Notepad++7.3.1

Notepad++7.3.1

Einfach zu bedienender und kostenloser Code-Editor

SublimeText3 chinesische Version

SublimeText3 chinesische Version

Chinesische Version, sehr einfach zu bedienen

Senden Sie Studio 13.0.1

Senden Sie Studio 13.0.1

Leistungsstarke integrierte PHP-Entwicklungsumgebung

Dreamweaver CS6

Dreamweaver CS6

Visuelle Webentwicklungstools

SublimeText3 Mac-Version

SublimeText3 Mac-Version

Codebearbeitungssoftware auf Gottesniveau (SublimeText3)