Como verificar se uma string é um número inteiro em Java
-
Verificar se a String é um Inteiro por
Character.digit()
em Java -
Verifique se a string é um Inteiro por
string.matches(padrão)
em Java -
Verifique se a String é um Inteiro por
Scanner.nextInt(radix)
em Java
![Como verificar se uma string é um número inteiro em Java](/img/Java/feature-image---How-to-check-if-a-string-is-an-integer-in-Java.webp)
String e Integers em Java são freqüentemente usados para armazenar dados, mas às vezes podemos querer verificar se um tipo de dado contém elementos compatíveis com outro tipo de dado ou não.
Como sabemos que uma String pode conter alfabetos, símbolos e números, é útil determinar o tipo de dados que nossa string contém. Vamos ver exemplos de verificação da string com diferentes métodos.
Verificar se a String é um Inteiro por Character.digit()
em Java
Podemos ver que o exemplo a seguir tem três strings que podemos passar para a função isStringInteger(stringToCheck, radix)
. O radix
diz o intervalo do número que queremos obter, aqui estamos utilizando 10, o que permite o intervalo de 0 a 9.
Character.digit()
verifica cada caractere da string e retorna um número maior que 0, se for um dígito. Declarações condicionais adicionais também podem ser adicionadas para que o resultado seja exato.
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;
}
}
Resultado:
Is 12000003 an Integer? -> true
Verifique se a string é um Inteiro por string.matches(padrão)
em Java
No método seguinte de identificar se a string contém elementos Inteiros, podemos usar a Expressão Regular, que pode ajudar a combinar um padrão específico, ou seja, valor numérico. A expressão que podemos comparar com a string e obter o resultado em um tipo booleano.
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);
}
}
Resultado:
Is ABC123 an Integer? -> false
Is 123 an Integer? -> true
Is 000000009 an Integer? -> true
Verifique se a String é um Inteiro por Scanner.nextInt(radix)
em Java
Também podemos utilizar a famosa classe Java Scanner()
. Seu método nextInt()
pode verificar se a string dada é do tipo Int
ou não.
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();
}
}
Resultado:
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.
LinkedInArtigo relacionado - Java String
- Como converter a string Java em Byte
- Como converter Byte Array em Hex String em Java
- Como realizar a conversão de string em array de string em Java
- Como remover string de string em Java
- Comparar Strings em Java
- Gerar String Aleatória em Java