CodeGym /Java-Blog /Random-DE /Java-Konvertierung von Char in Int mit Beispielen
Autor
Oleksandr Miadelets
Head of Developers Team at CodeGym

Java-Konvertierung von Char in Int mit Beispielen

Veröffentlicht in der Gruppe Random-DE
Sehr oft müssen symbolische Informationen, die Benutzer über die Tastatur eingeben, in Zahlen umgewandelt werden, oder ein Programmierer sollte daraus Zahlen erhalten. Dafür gibt es in Java einige Methoden. In diesem Artikel werden wir die Methoden herausfinden, die uns helfen, den Wert char in int umzuwandeln.

Implizite Typumwandlung

Beim Typumwandeln wird ein Wert eines Datentyps in einen Wert eines anderen Datentyps umgewandelt. Die Typumsetzung kann je nach Typ manuell oder automatisch erfolgen. Die Typen sollten kompatibel sein. In Java gibt es zwei Arten der Typumwandlung: explizit und implizit. Implizit ist nur möglich, wenn wir die Variable vom Typ „größer“ in den Typ „kleiner“ konvertieren (z. B. von int in long) . Wenn wir eine Variable vom Typ char in den Datentyp int konvertieren möchten, müssen wir meistens ihren entsprechenden Wert aus der ASCII-Tabelle abrufen. Jedes Alphabet oder Symbol, das digital eingegeben werden kann, verfügt über eine entsprechende eindeutige Ganzzahl. Das Alphabet „A“ hat beispielsweise den ASCII-Code 65. Durch Typumwandlung konvertieren wir den Zeichenwert zwangsweise in den entsprechenden ASCII-Ganzzahlcode. Hier ist unser Java-Char-zu-Int-Beispiel mit Typumwandlung.

Java char to int-Beispiel (mithilfe von typeCasting)


package charToInt;

public class Implicit {

       public static void main(String[] args) {
           char char1 = 'A';
           char char2 = 'a';
           int x = char1;
           int y = char2;

           System.out.println("ASCII value of '" + char1 + "' is " + x);
           System.out.println("ASCII value of '" + char2 + "' is " + y);
       }
   }
Die Ausgabe ist:
Der ASCII-Wert von „A“ ist 65. Der ASCII-Wert von „a“ ist 97

Explizite Typumwandlung

Wie wir oben gesehen haben, ist es im Fall der Konvertierung von char in int nicht notwendig, dies explizit zu tun, da 2 Bytes zum Speichern von char und 4 Bytes zum Speichern von int verwendet werden. Das heißt, der int-Typ ist „größer“. Als Übung können wir jedoch eine char-Variable explizit in eine Ganzzahl umwandeln. Für diese Operation erwähnen wir (int) in Klammern.

package charToInt;

public class Explicit {

       public static void main(String[] args) {
           char char1 = 'A';
           System.out.println("ASCII value of '" + char1 + "' is " + (int)char1);
       }
   }
Die Ausgabe ist:
Der ASCII-Wert von „A“ ist 65

Verwendung von getNumericValue()

getNumericValue() funktioniert ähnlich wie die Typumwandlung, folgt jedoch nicht der ASCII-Tabelle, sondern dem Unicode-Kodierungsstandard. ASCII kann nur einen bestimmten Satz von Symbolen und Zeichen darstellen, z. B. lateinische Buchstaben (plus einige Symbole des nationalen Alphabets), Zahlen, Satzzeichen und Steuerzeichen. Unicode enthält über eine Million Werte mit Buchstaben und Symbolen für jede Sprache der Welt. Der Wert von A in Unicode ist beispielsweise \u0041, was einem numerischen Wert von 10 entspricht. Wenn das Zeichen keinen numerischen Wert hat, gibt die Methode -1 zurück. Die Verwendung dieser Methode könnte praktisch sein, um nicht negative ganze Zahlen zurückzugeben.

package charToInt;

public class UsingGetNumericValue {

       public static void main(String[] args) {
           char char1 = '7';
           char char2 = 'A';
           char char3 = '*';

           int x = Character.getNumericValue(char1);
           int y = Character.getNumericValue(char2);
           int z = Character.getNumericValue(char3);

           System.out.println("The Unicode value of '" + char1 + "' is " + x);
           System.out.println("The Unicode value of '" + char2 + "' is " + y);
           System.out.println("The Unicode value of '" + char3 + "' is " + z);

       }
   }
Die Ausgabe ist:
Der Unicode-Wert von „7“ ist 7. Der Unicode-Wert von „A“ ist 10. Der Unicode-Wert von „*“ ist -1

Verwenden von ParseInt()

ParseInt() ist eine weitere Methode zum Konvertieren von char in int. Es wird auch häufig für die Kreuzkonvertierung zwischen anderen numerischen Datentypen wie Float, Double und Long verwendet. ParseInt() erfordert mindestens ein Argument und höchstens zwei Argumente. Das erste Argument ist der Variablenname des Werts, den wir konvertieren. Das zweite Argument ist die Basis, die sich auf den Basiswert von Dezimalzahl, Oktalzahl, Hexadezimalzahl usw. bezieht. Aufgrund der Fähigkeit von ParseInt(), Datentypen auch unter Berücksichtigung des Zahlensystems zu konvertieren, ist es eine optimale Wahl für die Konvertierung „numerisch“. char zu int in Java. Es gibt zwei wichtige Punkte, die Sie beachten sollten, wenn Sie diese Methode verwenden möchten. parseInt()Die Methode akzeptiert nur String-Argumente, daher sollten Sie zunächst char in String konvertieren (mithilfe von String.valueOf ). Sie können parseInt() nicht zum Konvertieren von Buchstaben oder anderen Symbolen außer numerischen Werten verwenden, die im Datentyp char gespeichert sind. Wenn Sie nicht numerische Werte eingeben, erhalten Sie eine Fehlermeldung. Hier ist ein Java-Beispiel:

package charToInt;

public class ParseInt {
       public static void main(String args[]){
           char ch = '7';
           int n = Integer.parseInt(String.valueOf(ch));
           System.out.println(n);
       }
   }
Die Ausgabe ist:
7
Versuchen wir, parseInt als nicht numerischen Wert zu verwenden:

package charToInt;

public class ParseInt {
       public static void main(String args[]){
           char ch = 'q';
           int n = Integer.parseInt(String.valueOf(ch));
           System.out.println(n);
       }
   }
Die Ausgabe ist:
Ausnahme im Thread „main“ java.lang.NumberFormatException: Für Eingabezeichenfolge: „q“ bei java.base/java.lang.NumberFormatException.forInputString(NumberFormatException.java:68) bei java.base/java.lang.Integer.parseInt (Integer.java:652) bei java.base/java.lang.Integer.parseInt(Integer.java:770) bei charToInt.ValueOf.main(ValueOf.java:6)

Subtrahieren von "0"

Es gibt eine sehr einfache Möglichkeit, ein Zeichen in eine Ganzzahl umzuwandeln. Subtrahieren Sie dazu einfach den ASCII-Wert des Zeichens „0“ vom Zeichen. So erhalten Sie beispielsweise int 7 aus dem Zeichen „7“:

int intValue = '7'-' 0 ';
Beachten Sie, dass dies zum Abrufen von int-Werten ausschließlich für ganzzahlige Zeichen funktioniert! Wenn Sie beispielsweise „0“ von „A“ subtrahieren, gibt die Methode einfach die Differenz zwischen den ASCII-Codes Null und dem Buchstaben A zurück. Hier ist ein Beispiel.

package charToInt;

public class SubtractingZero {

   public static void main(String[] args) {
       char char1 = '7';
       char char2 = 'A';
       char char3 = '*';

       System.out.println(char1);
       System.out.println(char1 - '0');

       System.out.println(char2);
       System.out.println(char2 - '0');

       System.out.println(char3);
       System.out.println(char3 - '0');
      
   }

}
Die Ausgabe ist:
7 7 A 7 * -6

Schlussfolgerungen

Wenn Sie in Java char in int konvertieren müssen, verwenden Sie eine der folgenden Methoden:
  • Implizite Typumwandlung // ASCII-Werte abrufen
  • Character.getNumericValue()
  • Integer.parseInt() //in Paar mit String.valueOf())
  • Das Subtrahieren von „0“ //funktioniert nur für ganzzahlige numerische Werte
Sie können auch eine explizite Typumwandlung durchführen. Dies ist jedoch ein redundanter Vorgang: Er wird nicht benötigt, funktioniert aber nur in Java.
Kommentare
TO VIEW ALL COMMENTS OR TO MAKE A COMMENT,
GO TO FULL VERSION