Comment vérifier si une chaîne de caractères est un entier en Java

Rupam Yadav 12 octobre 2023
  1. Vérifier si la chaîne est un entier par Character.digit() en Java
  2. Vérifiez si la chaîne est un entier en utilisant string.matches(pattern) en Java
  3. Vérifiez si la chaîne est un entier en utilisant Scanner.nextInt(radix) en Java
Comment vérifier si une chaîne de caractères est un entier en Java

Les chaînes et les entiers en Java sont souvent utilisés pour le stockage de données, mais il est parfois nécessaire de vérifier si un type de données contient des éléments compatibles avec un autre type de données ou non.

Comme nous savons qu’une chaîne peut contenir des alphabets, des symboles et des nombres, il est utile de déterminer le type de données que notre chaîne contient. Nous allons voir des exemples de vérification de la chaîne avec différentes méthodes.

Vérifier si la chaîne est un entier par Character.digit() en Java

Nous pouvons voir que l’exemple suivant comporte trois Strings que nous pouvons passer dans la fonction isStringInteger(stringToCheck, radix). Radix indique la plage du nombre que nous voulons obtenir, ici nous utilisons 10, ce qui permet la plage de 0 à 9.

Character.digit vérifie chaque caractère de la chaîne et retourne un nombre supérieur à 0 s’il s’agit d’un chiffre. Des déclarations conditionnelles supplémentaires peuvent également être ajoutées pour rendre le résultat précis.

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;
  }
}

Production:

Is 12000003 an Integer? -> true

Vérifiez si la chaîne est un entier en utilisant string.matches(pattern) en Java

Dans la méthode suivante pour déterminer si la chaîne contient des éléments entiers, nous pouvons utiliser l’expression régulière, qui peut aider à faire correspondre un modèle spécifique, c’est-à-dire une valeur numérique. -?\\d+ est l’expression que nous pouvons faire correspondre à la chaîne et obtenir le résultat en type booléen.

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);
  }
}

Production:

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

Vérifiez si la chaîne est un entier en utilisant Scanner.nextInt(radix) en Java

Nous pouvons également utiliser la célèbre classe Java Scanner(). Sa méthode nextInt() peut vérifier si la chaîne donnée est de type Int ou non.

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();
  }
}

Production:

Is ABC123 an Integer? -> false
Is 3030 an Integer? -> true
Is 000000009 an Integer? -> true
Auteur: Rupam Yadav
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

Article connexe - Java String

Article connexe - Java Int