Wie überprüft man, ob eine Zeichenkette eine Zahl in Java ist

Mohammad Irfan 12 Oktober 2023
  1. Prüfen, ob eine Zeichenkette in Java eine Zahl ist
  2. Prüfen Sie, ob ein String eine Zahl ist, indem Sie die Klasse Character in Java verwenden
  3. Prüfen, ob eine Zeichenkette eine Zahl ist, unter Verwendung der Apache-Bibliothek in Java
  4. Prüfen Sie, ob eine Zeichenkette eine Zahl ist, indem Sie die Double-Klasse in Java verwenden
  5. Prüfen, ob eine Zeichenkette eine Zahl in Java 8 ist
Wie überprüft man, ob eine Zeichenkette eine Zahl in Java ist

Dieses Tutorial führt ein, wie man prüft, ob eine Zeichenkette in Java numerisch ist, und listet einige Beispielcodes auf, um sie zu verstehen.

Es gibt verschiedene Möglichkeiten, numerische Zeichenketten zu prüfen, wie z. B. mit Regex, der Double-Klasse, der Character-Klasse oder dem funktionalen Ansatz von Java 8, usw.

Prüfen, ob eine Zeichenkette in Java eine Zahl ist

Eine Zeichenkette ist numerisch, wenn und nur wenn sie Zahlen enthält (gültige numerische Ziffern). Zum Beispiel ist "123" eine gültige numerische Zeichenkette, während "123a" keine gültige numerische Zeichenkette ist, weil sie ein Alphabet enthält.

Um numerische Zeichenketten zu überprüfen, könnten wir die Methode matched() der Klasse String verwenden, die regex als Argument nimmt und einen booleschen Wert entweder true oder false zurückgibt.

public class SimpleTesting {
  public static void main(String[] args) {
    String str = "123";
    boolean isNumeric = str.matches("[+-]?\\d*(\\.\\d+)?");
    System.out.println(isNumeric);
    str = "121xy";
    isNumeric = str.matches("[+-]?\\d*(\\.\\d+)?");
    System.out.println(isNumeric);
    str = "0x234";
    isNumeric = str.matches("[+-]?\\d*(\\.\\d+)?");
    System.out.println(isNumeric);
  }
}

Ausgabe:

true
false
false

Prüfen Sie, ob ein String eine Zahl ist, indem Sie die Klasse Character in Java verwenden

Wir können die Methode isDigit() der Klasse Character verwenden, um jedes Zeichen in einer Schleife zu prüfen. Sie gibt entweder einen true oder einen false Wert zurück.

public class SimpleTesting {
  public static void main(String[] args) {
    String str = "1123";
    boolean isNumeric = true;
    for (int i = 0; i < str.length(); i++) {
      if (!Character.isDigit(str.charAt(i))) {
        isNumeric = false;
      }
    }
    System.out.println(isNumeric);
  }
}

Ausgabe:

true

Prüfen, ob eine Zeichenkette eine Zahl ist, unter Verwendung der Apache-Bibliothek in Java

Wenn Sie Apache verwenden, können Sie die Methode isNumeric() der Klasse StringUtils verwenden, die true zurückgibt, wenn sie eine numerische Sequenz enthält.

import org.apache.commons.lang3.StringUtils;

public class SimpleTesting {
  public static void main(String[] args) {
    String str = "1123";
    boolean isNumeric = StringUtils.isNumeric(str);
    System.out.println(isNumeric);
    str = "123xyz";
    isNumeric = StringUtils.isNumeric(str);
    System.out.println(isNumeric);
  }
}

Ausgabe:

true
false

Prüfen Sie, ob eine Zeichenkette eine Zahl ist, indem Sie die Double-Klasse in Java verwenden

Wir können die Methode parseDouble() der Klasse Double verwenden, die eine Zeichenkette in Double konvertiert und einen Wert vom Typ Double zurückgibt. Sie wirft eine Ausnahme aus, wenn sie nicht geparst werden kann.

public class SimpleTesting {
  public static void main(String[] args) {
    String str = "1123";
    try {
      Double.parseDouble(str);
      System.out.println("It is a numerical string");
    } catch (NumberFormatException e) {
      System.out.println("It is not a numerical string");
    }
  }
}

Ausgabe:

It is a numerical string

Prüfen, ob eine Zeichenkette eine Zahl in Java 8 ist

Wenn Sie Java 8 oder eine höhere Version verwenden, können Sie dieses Beispiel verwenden, um die numerische Zeichenkette zu überprüfen. Hier wird die Methode isDigit() der Klasse Character in allMatch() als Methodenreferenz übergeben.

public class SimpleTesting {
  public static void main(String[] args) {
    String str = "1123";
    boolean isNumeric = str.chars().allMatch(Character::isDigit);
    System.out.println(isNumeric);
    str = "ab234";
    isNumeric = str.chars().allMatch(Character::isDigit);
    System.out.println(isNumeric);
  }
}

Ausgabe:

true
false

Verwandter Artikel - Java String