Überprüfen, ob eine Zeichenkette numerisch ist

JavaJavaBeginner
Jetzt üben

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

Einführung

In Java ist ein String ein häufig verwendeter Datentyp, der für verschiedene Aufgaben eingesetzt werden kann. Es wird oft verwendet, um Eingaben aus einem Textfeld oder einer Textarea zu speichern. Es ist wichtig, zu bestimmen, ob die Eingaben aus diesen Quellen gültige numerische Daten sind. In diesem Lab werden wir verschiedene Methoden lernen, um zu überprüfen, ob ein String in Java eine gültige Zahl ist.


Skills Graph

%%%%{init: {'theme':'neutral'}}%%%% flowchart RL java(("Java")) -.-> java/StringManipulationGroup(["String Manipulation"]) java(("Java")) -.-> java/DataStructuresGroup(["Data Structures"]) java(("Java")) -.-> java/ProgrammingTechniquesGroup(["Programming Techniques"]) java(("Java")) -.-> java/ObjectOrientedandAdvancedConceptsGroup(["Object-Oriented and Advanced Concepts"]) java(("Java")) -.-> java/SystemandDataProcessingGroup(["System and Data Processing"]) java/StringManipulationGroup -.-> java/strings("Strings") java/StringManipulationGroup -.-> java/regex("RegEx") java/DataStructuresGroup -.-> java/collections_methods("Collections Methods") java/ProgrammingTechniquesGroup -.-> java/method_overloading("Method Overloading") java/ObjectOrientedandAdvancedConceptsGroup -.-> java/exceptions("Exceptions") java/SystemandDataProcessingGroup -.-> java/string_methods("String Methods") subgraph Lab Skills java/strings -.-> lab-117415{{"Überprüfen, ob eine Zeichenkette numerisch ist"}} java/regex -.-> lab-117415{{"Überprüfen, ob eine Zeichenkette numerisch ist"}} java/collections_methods -.-> lab-117415{{"Überprüfen, ob eine Zeichenkette numerisch ist"}} java/method_overloading -.-> lab-117415{{"Überprüfen, ob eine Zeichenkette numerisch ist"}} java/exceptions -.-> lab-117415{{"Überprüfen, ob eine Zeichenkette numerisch ist"}} java/string_methods -.-> lab-117415{{"Überprüfen, ob eine Zeichenkette numerisch ist"}} end

Verwendung der Parsing-Methode zum Überprüfen von numerischen Zeichenketten

Das Parsen ist die einfachste und beste Methode, um zu bestimmen, ob eine Zeichenkette in Java numerisch ist. Java bietet verschiedene integrierte Parsing-Methoden wie Integer.parseInt(String number), Double.parseDouble(String number), Float.parseFloat(String number) und Long.parseLong(String number) an, die als Konverter für den entsprechenden numerischen Datentyp fungieren.

public static boolean isStringNumeric(String number) {
    boolean isNumeric;
    if(number == null) {
        isNumeric = false;
    } else {
        try {
            Double num = Double.parseDouble(number);
            isNumeric = true;
        } catch(NumberFormatException e) {
            isNumeric = false;
        }
    }
    return isNumeric;
}
public static void main(String[] args) {
    String num1 = "1001";
    String num2 = "-101";
    String num3 = "1a10";
    String num4 = null;

    System.out.println("String " + num1 + " is numeric: " + isStringNumeric(num1));
    System.out.println("String " + num2 + " is numeric: " + isStringNumeric(num2));
    System.out.println("String " + num3 + " is numeric: " + isStringNumeric(num3));
    System.out.println("String " + num4 + " is numeric: " + isStringNumeric(num4));
}

Um den Code auszuführen:

  • Speichern Sie den Code in einer Datei namens NumericStringParser.java
  • Öffnen Sie das Terminal und navigieren Sie zum Verzeichnis, in dem die Datei enthalten ist
  • Kompilieren Sie den Code mit javac NumericStringParser.java
  • Führen Sie den Code mit java NumericStringParser aus

Verwendung von regulären Ausdrücken zum Überprüfen von numerischen Zeichenketten

Reguläre Ausdrücke können verwendet werden, um eine Zeichenkette zu überprüfen und zu bestimmen, ob sie numerisch ist oder nicht. Wir verwenden die matches()-Methode von Zeichenketten, um die Zeichenkettenzahl mit regulären Ausdrücken zu vergleichen. Um Zeichenketten zu überprüfen, wird der reguläre Ausdruck "-?\d+(\.\d+)?" verwendet, wobei -? angibt, ob die Zahl negativ ist oder nicht, \d+ sucht nach einer oder mehreren Ziffern in der Zeichenkette und (\.\d+)? wird verwendet, um Dezimalzahlen zu überprüfen. Hierbei sucht \. nach dem Dezimalpunkt und \d+ sucht nach einer oder mehreren Ziffern nach dem Dezimalpunkt.

public static boolean isStringNumeric(String number) {
    boolean isNumeric;
    String regex = "-?\\d+(\\.\\d+)?";
    if(number == null) {
        isNumeric = false;
    } else if(number.matches(regex)) {
        isNumeric = true;
    } else {
        isNumeric = false;
    }
    return isNumeric;
}
public static void main(String[] args) {
    String num1 = "1001";
    String num2 = "-101";
    String num3 = "1a10";
    String num4 = null;
    System.out.println("String " + num1 + " is numeric: " + isStringNumeric(num1));
    System.out.println("String " + num2 + " is numeric: " + isStringNumeric(num2));
    System.out.println("String " + num3 + " is numeric: " + isStringNumeric(num3));
    System.out.println("String " + num4 + " is numeric: " + isStringNumeric(num4));
}

Um den Code auszuführen:

  • Speichern Sie den Code in einer Datei namens NumericStringRegex.java
  • Öffnen Sie das Terminal und navigieren Sie zum Verzeichnis, in dem die Datei enthalten ist
  • Kompilieren Sie den Code mit javac NumericStringRegex.java
  • Führen Sie den Code mit java NumericStringRegex aus

Verwendung der Apache Commons-Bibliothek

Die Apache Commons-Bibliothek bietet einige Methoden, um zu überprüfen, ob eine Zeichenkette numerisch ist oder nicht.

NumberUtils.isCreatable() Methode

Die isCreatable()-Methode ist eine einfache und bequeme Methode, um zu überprüfen, ob eine Zeichenkette numerisch ist. Sie akzeptiert auch numerische Zeichenketten von Hexadezimalzahlen, die mit 0x oder oX beginnen, Oktalzahlen, die mit 0 beginnen, wissenschaftliche Notationen, die das Zeichen e verwenden, und akzeptiert auch Zahlen, die mit einem Typqualifizierer markiert sind.

import org.apache.commons.lang3.math.NumberUtils;
public static void main(String[] args) {
    String num1 = "a10c";
    String num2 = "-104";
    String num3 = "100";
    String num4 = "0xA10";

    System.out.println("String " + num1 + " is numeric: " + NumberUtils.isCreatable(num1));
    System.out.println("String " + num2 + " is numeric: " + NumberUtils.isCreatable(num2));
    System.out.println("String " + num3 + " is numeric: " + NumberUtils.isCreatable(num3));
    System.out.println("String " + num4 + " is numeric: " + NumberUtils.isCreatable(num4));
}
NumberUtils.isParsable() Methode

Die isParsable()-Methode wird verwendet, um zu überprüfen, ob eine Zeichenkette analysierbar ist oder nicht. Sie kann nicht mit Hexadezimalzahlen oder wissenschaftlichen Notationen wie die isCreatable()-Methode umgehen.

import org.apache.commons.lang3.math.NumberUtils;
public static void main(String[] args) {
    String num1 = "a10c";
    String num2 = "-104";
    String num3 = "100";
    String num4 = "0xA10";

    System.out.println("String " + num1 + " is numeric: " + NumberUtils.isParsable(num1));
    System.out.println("String " + num2 + " is numeric: " + NumberUtils.isParsable(num2));
    System.out.println("String " + num3 + " is numeric: " + NumberUtils.isParsable(num3));
    System.out.println("String " + num4 + " is numeric: " + NumberUtils.isParsable(num4));
}
StringUtils.isNumeric() Methode

Die isNumeric()-Methode überprüft auf Unicode-Ziffern und gibt false zurück, wenn die numerische Zeichenkette eine negative Zahl darstellt oder einen Dezimalpunkt enthält. Diese Methode sollte nur berücksichtigt werden, wenn wir nur nach positiven ganzen Zahlen suchen.

import org.apache.commons.lang3.StringUtils;
public static void main(String[] args) {
    String num1 = "a10c";
    String num2 = "-104";
    String num3 = "100";
    String num4 = "0.11";

    System.out.println("String " + num1 + " is numeric: " + StringUtils.isNumeric(num1));
    System.out.println("String " + num2 + " is numeric: " + StringUtils.isNumeric(num2));
    System.out.println("String " + num3 + " is numeric: " + StringUtils.isNumeric(num3));
    System.out.println("String " + num4 + " is numeric: " + StringUtils.isNumeric(num4));
}
StringUtils.isNumericSpace() Methode

Die isNumericSpace()-Methode überprüft auch auf Leerzeichen. Wenn eine Zeichenkette vom Typ "19 8" ist, wird diese Methode true zurückgeben. Sie wird auch true zurückgeben, wenn die Zeichenkette nur aus Leerzeichen besteht.

import org.apache.commons.lang3.StringUtils;
public static void main(String[] args) {
    String num1 = "a10c";
    String num2 = "  ";
    String num3 = "100";
    String num4 = "0.11";

    System.out.println("String " + num1 + " is numeric: " + StringUtils.isNumeric(num1));
    System.out.println("String " + num2 + " is numeric: " + StringUtils.isNumeric(num2));
    System.out.println("String " + num3 + " is numeric: " + StringUtils.isNumeric(num3));
    System.out.println("String " + num4 + " is numeric: " + StringUtils.isNumeric(num4));
}

Zusammenfassung

In diesem Lab haben wir verschiedene Methoden gelernt, um zu überprüfen, ob eine Zeichenkette in Java numerisch ist, und wie wir sie verwenden können. Wir haben die integrierte Parsing-Methode, reguläre Ausdrücke und die Apache Commons-Bibliothek verwendet, um zu überprüfen, ob eine Zeichenkette in Java numerisch ist oder nicht.