Java String to Int - So konvertieren Sie einen String in eine Ganzzahl

Zeichenfolgenobjekte werden als Zeichenfolge dargestellt.

Wenn Sie in Java Swing gearbeitet haben, enthält es Komponenten wie JTextField und JTextArea, mit denen wir unsere Eingaben von der GUI abrufen. Es nimmt unsere Eingabe als Zeichenfolge.

Wenn wir mit Swing einen einfachen Taschenrechner erstellen möchten, müssen wir herausfinden, wie eine Zeichenfolge in eine Ganzzahl konvertiert wird. Dies führt uns zu der Frage: Wie können wir einen String in eine Ganzzahl konvertieren?

In Java können wir eine Zeichenfolge verwenden Integer.valueOf()und Integer.parseInt()in eine Ganzzahl konvertieren.

1. Verwenden Sie Integer.parseInt (), um einen String in eine Ganzzahl zu konvertieren

Diese Methode gibt die Zeichenfolge als primitiven Typ int zurück . Wenn die Zeichenfolge keine gültige Ganzzahl enthält, wird eine NumberFormatException ausgelöst.

Jedes Mal, wenn wir eine Zeichenfolge in eine int konvertieren, müssen wir diese Ausnahme beheben, indem wir den Code in den try-catch-Block einfügen.

Betrachten wir ein Beispiel für die Konvertierung eines Strings in ein int mit Integer.parseInt():

 String str = "25"; try{ int number = Integer.parseInt(str); System.out.println(number); // output = 25 } catch (NumberFormatException ex){ ex.printStackTrace(); }

Versuchen wir, diesen Code durch Eingabe einer ungültigen Ganzzahl zu brechen:

 String str = "25T"; try{ int number = Integer.parseInt(str); System.out.println(number); } catch (NumberFormatException ex){ ex.printStackTrace(); }

Wie Sie im obigen Code sehen können, haben wir versucht, 25Tin eine Ganzzahl zu konvertieren . Dies ist keine gültige Eingabe. Daher muss eine NumberFormatException ausgelöst werden.

Hier ist die Ausgabe des obigen Codes:

java.lang.NumberFormatException: For input string: "25T" at java.lang.NumberFormatException.forInputString(NumberFormatException.java:65) at java.lang.Integer.parseInt(Integer.java:580) at java.lang.Integer.parseInt(Integer.java:615) at OOP.StringTest.main(StringTest.java:51)

Als nächstes werden wir uns überlegen, wie eine Zeichenfolge mithilfe der Integer.valueOf()Methode in eine Ganzzahl konvertiert wird.

2. Verwenden Sie Integer.valueOf (), um einen String in eine Ganzzahl zu konvertieren

Diese Methode gibt die Zeichenfolge als ganzzahliges Objekt zurück . Wenn Sie sich die Java-Dokumentation ansehen, wird Integer.valueOf()ein ganzzahliges Objekt zurückgegeben, das a entspricht new Integer(Integer.parseInt(s)).

Bei dieser Methode platzieren wir unseren Code im try-catch-Block. Betrachten wir ein Beispiel mit der Integer.valueOf()Methode:

 String str = "25"; try{ Integer number = Integer.valueOf(str); System.out.println(number); // output = 25 } catch (NumberFormatException ex){ ex.printStackTrace(); }

Versuchen wir nun, den obigen Code durch Eingabe einer ungültigen Ganzzahl zu brechen:

 String str = "25TA"; try{ Integer number = Integer.valueOf(str); System.out.println(number); } catch (NumberFormatException ex){ ex.printStackTrace(); }

Ähnlich wie im vorherigen Beispiel löst der obige Code eine Ausnahme aus.

Hier ist die Ausgabe des obigen Codes:

java.lang.NumberFormatException: For input string: "25TA" at java.lang.NumberFormatException.forInputString(NumberFormatException.java:65) at java.lang.Integer.parseInt(Integer.java:580) at java.lang.Integer.valueOf(Integer.java:766) at OOP.StringTest.main(StringTest.java:42)

Wir können auch eine Methode erstellen, um zu überprüfen, ob die übergebene Zeichenfolge numerisch ist oder nicht, bevor wir die oben genannten Methoden verwenden.

Ich habe eine einfache Methode erstellt, um zu überprüfen, ob die übergebene Zeichenfolge numerisch ist oder nicht.

public class StringTest { public static void main(String[] args) { String str = "25"; String str1 = "25.06"; System.out.println(isNumeric(str)); System.out.println(isNumeric(str1)); } private static boolean isNumeric(String str){ return str != null && str.matches("[0-9.]+"); } }

Die Ausgabe ist:

true true

Die isNumeric()Methode verwendet eine Zeichenfolge als Argument. Zuerst wird geprüft, ob dies der Fall ist nulloder nicht. Danach matches()überprüfen wir mit der Methode, ob sie die Ziffern 0 bis 9 und ein Punktzeichen enthält.

Dies ist eine einfache Möglichkeit, numerische Werte zu überprüfen. Sie können Google nach erweiterten regulären Ausdrücken schreiben oder durchsuchen, um numerische Daten abhängig von Ihrem Anwendungsfall zu erfassen.

Es wird empfohlen, zu überprüfen, ob die übergebene Zeichenfolge numerisch ist oder nicht, bevor Sie versuchen, sie in eine Ganzzahl umzuwandeln.

Danke fürs Lesen.

Beitrag Bild von 🇸🇮 Janko Ferlič auf Unsplash

Sie können sich mit mir auf Medium verbinden.

Viel Spaß beim Codieren!