Comment vérifier si une chaîne de caractères est un entier en Java
-
Vérifier si la chaîne est un entier par
Character.digit()
en Java -
Vérifiez si la chaîne est un entier en utilisant
string.matches(pattern)
en Java -
Vérifiez si la chaîne est un entier en utilisant
Scanner.nextInt(radix)
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
Rupam Saini is an android developer, who also works sometimes as a web developer., He likes to read books and write about various things.
LinkedInArticle connexe - Java String
- Comment effectuer une conversion de chaîne en chaîne en Java
- Comment supprimer une sous-chaîne d'une chaîne en Java
- Comment convertir un tableau d'octets en chaîne hexadécimale en Java
- Comment convertir une chaîne Java en octet
- Générer une chaîne aléatoire en Java
- La méthode d'échange à Java