Cómo comprobar si una cadena es un entero en Java
-
Comprobar si la Cadena es un entero por
Character.digit()
en Java -
Comprueba si la cadena es un entero por
string.matches(pattern)
en Java -
Comprueba si la cadena es un entero por
Scanner.nextInt(radix)
en Java
Las cadenas y los números enteros en Java se utilizan a menudo para almacenar datos, pero a veces podríamos querer comprobar si un tipo de datos contiene elementos compatibles con otro tipo de datos o no.
Como sabemos que una cadena puede contener alfabetos, símbolos y números, es útil para determinar el tipo de datos que nuestra cadena contiene. Vamos a ver ejemplos de comprobación de la cadena con diferentes métodos.
Comprobar si la Cadena es un entero por Character.digit()
en Java
Podemos ver que el siguiente ejemplo tiene tres String
que podemos pasar a la función isStringInteger(stringToCheck, radix)
. Radix nos dice el rango del número que queremos obtener, aquí estamos usando 10, que permite el rango de 0 a 9.
Character.digit()
comprueba cada carácter de la cadena y devuelve un número más de 0 si es un dígito. También se pueden agregar declaraciones condicionales adicionales para que el resultado sea preciso.
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
Comprueba si la cadena es un entero por string.matches(pattern)
en Java
En el siguiente método para identificar si la cadena contiene elementos enteros, podemos usar la Expresión Regular, que puede ayudar a coincidir con un patrón específico, es decir, un valor numérico. -?\\d+
es la expresión que podemos hacer coincidir con la cadena y obtener el resultado en 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
Comprueba si la cadena es un entero por Scanner.nextInt(radix)
en Java
También podemos usar la famosa clase Scanner()
de Java. Su método nextInt()
puede comprobar si la cadena dada es de tipo Int
o no.
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.
LinkedInArtículo relacionado - Java String
- Cómo eliminar la subcadena de la cadena en Java
- Cómo realizar una conversión de cadena a cadena en Java
- Cómo convertir un array de bytes en una cadena hexadecimal en Java
- Cómo convertir una cadena de Java en un byte
- Generar cadena aleatoria en Java
- El método Swap en Java