In diesem Programm lernen Sie verschiedene Techniken, um zu überprüfen, ob eine Zeichenfolge in Java numerisch ist oder nicht.
Um dieses Beispiel zu verstehen, sollten Sie die folgenden Java-Programmierthemen kennen:
- Java String
- Behandlung von Java-Ausnahmen
Beispiel 1: Überprüfen Sie, ob eine Zeichenfolge numerisch ist
public class Numeric ( public static void main(String() args) ( String string = "12345.15"; boolean numeric = true; try ( Double num = Double.parseDouble(string); ) catch (NumberFormatException e) ( numeric = false; ) if(numeric) System.out.println(string + " is a number"); else System.out.println(string + " is not a number"); ) )
Ausgabe
12345.15 ist eine Zahl
Im obigen Programm haben wir eine String
benannte Zeichenfolge, die die zu überprüfende Zeichenfolge enthält. Wir haben auch einen booleschen numerischen Wert, der speichert, ob das Endergebnis numerisch ist oder nicht.
Um zu überprüfen, ob die Zeichenfolge nur Zahlen enthält, verwenden wir im try-Block die Methode Double
's parseDouble()
, um die Zeichenfolge in a zu konvertieren Double
.
Wenn es einen Fehler auslöst (dh einen NumberFormatException
Fehler), bedeutet dies, dass die Zeichenfolge keine Zahl ist und die Zahl auf gesetzt ist false
. Sonst ist es eine Nummer.
Wenn Sie jedoch überprüfen möchten, ob mehrere Zeichenfolgen vorhanden sind, müssen Sie diese in eine Funktion ändern. Und die Logik basiert auf dem Auslösen von Ausnahmen, dies kann ziemlich teuer sein.
Stattdessen können wir die Potenz regulärer Ausdrücke verwenden, um zu überprüfen, ob die Zeichenfolge numerisch ist oder nicht, wie unten gezeigt.
Beispiel 2: Überprüfen Sie, ob eine Zeichenfolge numerisch ist oder nicht, indem Sie reguläre Ausdrücke verwenden (regulärer Ausdruck).
public class Numeric ( public static void main(String() args) ( String string = "-1234.15"; boolean numeric = true; numeric = string.matches("-?\d+(\.\d+)?"); if(numeric) System.out.println(string + " is a number"); else System.out.println(string + " is not a number"); ) )
Ausgabe
-1234.15 ist eine Zahl
Im obigen Programm verwenden wir anstelle eines Try-Catch-Blocks Regex, um zu überprüfen, ob die Zeichenfolge numerisch ist oder nicht. Dies erfolgt nach der matches()
Methode von String .
In der matches()
Methode
-?
erlaubt null oder mehr-
für negative Zahlen in der Zeichenfolge.\d+
Überprüft, ob die Zeichenfolge mindestens eine oder mehrere Zahlen haben muss (\d
).(\.\d+)?
erlaubt null oder mehr des gegebenen Musters,(\.\d+)
in dem\.
prüft, ob die Zeichenfolge enthält.
(Dezimalstellen) oder nicht- Wenn ja, sollte mindestens eine oder mehrere Nummern folgen
\d+
.