Java-Programm zum Überprüfen, ob eine Zeichenfolge numerisch ist

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 Stringbenannte 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 NumberFormatExceptionFehler), 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+.

Interessante Beiträge...