Vorzeichenlose Ganzzahl analysieren

JavaJavaBeginner
Jetzt üben

💡 Dieser Artikel wurde von AI-Assistenten übersetzt. Um die englische Version anzuzeigen, können Sie hier klicken

Einführung

In diesem Lab werden wir lernen, wie man einen Zeichenfolgenwert als vorzeichenlosen Dezimalwert in Java mithilfe der Methode parseUnsignedInt() analysiert. Wir werden die Syntax, die Parameter und die Rückgabetypen der Methode durchgehen und lernen, wie man sie mit Hilfe einiger Beispiele einsetzt.

Erstellen einer neuen Java-Datei

Zunächst müssen wir eine neue Java-Datei im Verzeichnis ~/project erstellen. Wir können dies tun, indem wir das Terminal öffnen und eingeben:

touch ~/project/UnsignedIntegerParser.java

Dadurch wird ein leerer Nano-Editor-Fenster geöffnet.

Importieren der Integer-Klasse

Wir müssen die Integer-Klasse des java.lang-Pakets importieren, da diese die parseUnsignedInt()-Methode enthält. Wir können dies tun, indem wir den folgenden Code in unsere Datei einfügen:

import java.lang.Integer;

Vorzeichenlose Ganzzahl aus einem Zeichenfolgenwert extrahieren

Lassen Sie uns nun lernen, wie die parseUnsignedInt()-Methode verwendet wird. Wir können diese Methode auf einem Zeichenfolgenwert aufrufen, und sie wird das entsprechende vorzeichenlose Dezimal-Ganzzahl-Objekt zurückgeben. Hier ist ein Beispiel:

String s = "123";
int n = Integer.parseUnsignedInt(s); //Konvertiert die übergebene Zeichenfolge als vorzeichenlose Ganzzahl
System.out.println(n);

Die Ausgabe dieses Codes wird 123 sein.

Umgang mit ungültigen Eingaben

Wenn wir der parseUnsignedInt()-Methode ungültige Eingaben liefern, wird eine NumberFormatException ausgelöst. Wir können diese Ausnahme mit einem try-catch-Block behandeln. Hier ist ein Beispiel:

try {
  String s = "-123";
  int n = Integer.parseUnsignedInt(s); //Konvertiert die übergebene Zeichenfolge als vorzeichenlose Ganzzahl
  System.out.println(n);
} catch(NumberFormatException ex) {
  System.out.println("Ungültige Eingabe.");
}

In diesem Code versuchen wir, eine negative Ganzzahl zu analysieren, was ungültig ist. Die parseUnsignedInt()-Methode wird eine NumberFormatException auslösen, die vom catch-Block gefangen wird. Die Ausgabe dieses Codes wird Ungültige Eingabe. sein.

Einlesen von Eingaben von der Konsole

Wir können auch Eingaben von der Konsole lesen und sie als vorzeichenlose Ganzzahl analysieren. Hier ist ein Beispiel:

Scanner scanner = new Scanner(System.in);
System.out.print("Geben Sie eine positive Ganzzahl ein: ");
String s = scanner.nextLine();
try {
  int n = Integer.parseUnsignedInt(s); //Konvertiert die übergebene Zeichenfolge als vorzeichenlose Ganzzahl
  System.out.println(n);
} catch(NumberFormatException ex) {
  System.out.println("Ungültige Eingabe.");
}

In diesem Code verwenden wir die Scanner-Klasse, um Eingaben von der Konsole zu lesen. Wir analysieren dann die Eingabezeichenfolge als vorzeichenlose Ganzzahl mit der parseUnsignedInt()-Methode. Schließlich fangen wir alle Ausnahmen, die beim Analysieren der Eingabe auftreten können.

Um diesen Code im Terminal auszuführen, müssen wir ihn zunächst mit dem Befehl kompilieren:

javac UnsignedIntegerParser.java

Anschließend können wir ihn mit dem Befehl ausführen:

java UnsignedIntegerParser

Analysieren von vorzeichenlosen Ganzzahlen aus einer Liste von Zeichenfolgen

Wir können auch vorzeichenlose Ganzzahlen aus einer Liste von Zeichenfolgen analysieren. Hier ist ein Beispiel:

List<String> stringList = Arrays.asList("123", "456", "789");
for (String s : stringList) {
  try {
    int n = Integer.parseUnsignedInt(s); //Konvertiert die übergebene Zeichenfolge als vorzeichenlose Ganzzahl
    System.out.println(n);
  } catch(NumberFormatException ex) {
    System.out.println("Ungültige Eingabe: " + s);
  }
}

In diesem Code iterieren wir über eine Liste von Zeichenfolgen und analysieren jede Zeichenfolge als vorzeichenlose Ganzzahl mit der parseUnsignedInt()-Methode. Wenn die Zeichenfolge keine gültige vorzeichenlose Ganzzahl ist, fangen wir die Ausnahme und geben eine Fehlermeldung aus.

Verwenden einer Hilfsfunktion

Um das Wiederholen des gleichen try-catch-Blocks jedes Mal zu vermeiden, wenn wir eine vorzeichenlose Ganzzahl analysieren, können wir eine Hilfsfunktion erstellen, die eine Zeichenfolge als Eingabe nimmt und eine vorzeichenlose Ganzzahl zurückgibt. Hier ist ein Beispiel:

public static int parseUnsignedInt(String s) {
  try {
    return Integer.parseUnsignedInt(s); //Konvertiert die übergebene Zeichenfolge als vorzeichenlose Ganzzahl
  } catch(NumberFormatException ex) {
    return -1; //Gibt -1 für ungültige Eingabe zurück
  }
}

In diesem Code definieren wir eine parseUnsignedInt()-Funktion, die eine Zeichenfolge als Eingabe nimmt und eine vorzeichenlose Ganzzahl zurückgibt. Wenn die Eingabe keine gültige vorzeichenlose Ganzzahl ist, gibt die Funktion -1 zurück. Wir können dann diese Funktion verwenden, um vorzeichenlose Ganzzahlen zu analysieren, ohne uns um Ausnahmen zu kümmern. Hier ist ein Beispiel, wie die Funktion verwendet werden kann:

String s = "123";
int n = parseUnsignedInt(s);
System.out.println(n); //Ausgabe: 123

s = "-123";
n = parseUnsignedInt(s);
System.out.println(n); //Ausgabe: -1

Umgang mit größeren vorzeichenlosen Ganzzahlen

Wenn wir größere vorzeichenlose Ganzzahlen analysieren müssen, können wir die parseUnsignedInt()-Methode der UnsignedInteger-Klasse statt der Integer-Klasse verwenden. Diese Methode gibt einen long zurück, statt eines int. Hier ist ein Beispiel:

String s = "4294967295"; //Maximalwert einer vorzeichenlosen 32-Bit-Ganzzahl
long n = Long.parseUnsignedLong(s);
System.out.println(n); //Ausgabe: 4294967295

Verwendung von Basis (Radix)

Wenn wir eine Zeichenfolge analysieren möchten, die eine Zahl in einer anderen Basis als 10 repräsentiert, können wir die parseInt()-Methode verwenden, die einen zusätzlichen radix-Parameter akzeptiert. Hier ist ein Beispiel:

String s = "1101"; //Binäre Darstellung von 13
int n = Integer.parseUnsignedInt(s, 2); //Analysiere als Binärzahl
System.out.println(n); //Ausgabe: 13

Beenden von Nano und Ausführen des Codes

Um Nano zu beenden, drücken Sie Strg+X, dann Y, um die Datei zu speichern, und dann Enter.

Um den Code im Terminal auszuführen, können wir ihn mit dem Befehl kompilieren:

javac UnsignedIntegerParser.java

Anschließend können wir ihn mit dem Befehl ausführen:

java UnsignedIntegerParser

Zusammenfassung

In diesem Lab haben wir gelernt, wie man einen Zeichenfolgewert als vorzeichenlose Dezimalzahl in Java mit der parseUnsignedInt()-Methode analysiert. Wir haben auch gelernt, wie man ungültige Eingaben behandelt, Eingaben von der Konsole liest, vorzeichenlose Ganzzahlen aus einer Liste von Zeichenfolgen extrahiert und Hilfsfunktionen verwendet. Wir haben außerdem gelernt, wie man größere vorzeichenlose Ganzzahlen analysiert, die Basis (Radix) verwendet und unseren Code im Terminal ausführt.