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

Rupam Yadav 12 Oktober 2023
  1. Prüfen, ob die Zeichenkette eine ganze Zahl ist, durch Character.digit() in Java
  2. Prüfung, ob die Zeichenkette eine ganze Zahl ist, durch string.matches(pattern) in Java
  3. Prüfen Sie mit Scanner.nextInt(radix) in Java, ob die Zeichenkette eine ganze Zahl ist
Wie überprüft man, ob eine Zeichenkette in Java eine ganze Zahl ist

String und Ganzzahlen in Java werden oft zum Speichern von Daten verwendet, aber manchmal möchten wir vielleicht prüfen, ob ein Datentyp Elemente enthält, die mit einem anderen Datentyp kompatibel sind oder nicht.

Da wir wissen, dass eine Zeichenkette Alphabete, Symbole und Zahlen enthalten kann, ist es nützlich, den Datentyp zu bestimmen, den unsere Zeichenkette enthält. Wir werden Beispiele für die Überprüfung der Zeichenkette mit verschiedenen Methoden sehen.

Prüfen, ob die Zeichenkette eine ganze Zahl ist, durch Character.digit() in Java

Wir können sehen, dass das folgende Beispiel drei Strings hat, die wir an die Funktion isStringInteger(stringToCheck, radix) übergeben können. Radix gibt den Bereich der Zahl an, die wir erhalten wollen, hier verwenden wir 10, was den Bereich von 0 bis 9 erlaubt.

Character.digit() prüft jedes Zeichen in der Zeichenkette und gibt eine Zahl größer als 0 zurück, wenn es sich um eine Ziffer handelt. Es können auch zusätzliche bedingte Anweisungen hinzugefügt werden, um das Ergebnis genau zu machen.

public class Main {
  public static void main(String[] args) {
    String str1 = "ABC123";
    String str2 = "3030";
    String str3 = "-9";

    boolean integerOrNot1 = isStringInteger(str1, 10);
    System.out.println("Is " + str1 + " an Integer? -> " + integerOrNot1);

    boolean integerOrNot2 = isStringInteger(str2, 10);
    System.out.println("Is " + str2 + " an Integer? -> " + integerOrNot2);

    boolean integerOrNot3 = isStringInteger(str3, 10);
    System.out.println("Is " + str3 + " an Integer? -> " + integerOrNot3);
  }

  public static boolean isStringInteger(String stringToCheck, int radix) {
    if (stringToCheck.isEmpty())
      return false; // Check if the string is empty
    for (int i = 0; i < stringToCheck.length(); i++) {
      if (i == 0 && stringToCheck.charAt(i) == '-') { // Check for negative Integers
        if (stringToCheck.length() == 1)
          return false;
        else
          continue;
      }
      if (Character.digit(stringToCheck.charAt(i), radix) < 0)
        return false;
    }
    return true;
  }
}

Ausgabe:

Is 12000003 an Integer? -> true

Prüfung, ob die Zeichenkette eine ganze Zahl ist, durch string.matches(pattern) in Java

Bei der nächsten Methode zur Identifizierung, ob die Zeichenkette ganzzahlige Elemente enthält, können wir den Regulären Ausdruck verwenden, der helfen kann, einem bestimmten Muster, d.h. einem numerischen Wert, zu entsprechen. -?\\d+ ist der Ausdruck, den wir mit der Zeichenkette abgleichen können und das Ergebnis in der Art boolisch erhalten.

public class Main {
  public static void main(String[] args) {
    String str1 = "ABC123";
    String str2 = "123";
    String str3 = "000000009";

    boolean integerOrNot1 = str1.matches("-?\\d+");
    System.out.println("Is " + str1 + " an Integer? -> " + integerOrNot1);

    boolean integerOrNot2 = str2.matches("-?\\d+");
    System.out.println("Is " + str2 + " an Integer? -> " + integerOrNot2);

    boolean integerOrNot3 = str3.matches("-?\\d+");
    ;
    System.out.println("Is " + str3 + " an Integer? -> " + integerOrNot3);
  }
}

Ausgabe:

Is ABC123 an Integer? -> false
Is 123 an Integer? -> true
Is 000000009 an Integer? -> true

Prüfen Sie mit Scanner.nextInt(radix) in Java, ob die Zeichenkette eine ganze Zahl ist

Wir können auch die berühmte Scanner()-Klasse von Java verwenden. Ihre nextInt() Methode kann prüfen, ob die angegebene Zeichenkette vom Typ Int ist oder nicht.

import java.util.Scanner;

public class Main {
  public static void main(String[] args) {
    String str1 = "ABC123";
    String str2 = "3030";
    String str3 = "000000009";

    System.out.println("Is " + str1 + " an Integer? -> " + isStringInteger(str1, 10));
    System.out.println("Is " + str2 + " an Integer? -> " + isStringInteger(str2, 10));
    System.out.println("Is " + str3 + " an Integer? -> " + isStringInteger(str3, 10));
  }

  public static boolean isStringInteger(String stringToCheck, int radix) {
    Scanner sc = new Scanner(stringToCheck.trim());
    if (!sc.hasNextInt(radix))
      return false;
    sc.nextInt(radix);
    return !sc.hasNext();
  }
}

Ausgabe:

Is ABC123 an Integer? -> false
Is 3030 an Integer? -> true
Is 000000009 an Integer? -> true
Rupam Yadav avatar Rupam Yadav avatar

Rupam Saini is an android developer, who also works sometimes as a web developer., He likes to read books and write about various things.

LinkedIn

Verwandter Artikel - Java String

Verwandter Artikel - Java Int