¿Como saber si un variable String es número o texto?

En este tutorial se explica cómo saber si una variable String es un número o un texto. Aplica también para el contenido de un Edit Text. Creando un método que regresa una variable tipo Boolean que indica si es número o no. Este método funciona para cualquier variable String, así que se usa para saber si una variable tipo String es un número o un texto.

Comúnmente, se usa un Edit Text para la entrada de datos. Sin embargo, si nuestro código usa números para hacer cálculos, y de alguna manera el usuario ingresa algún carácter o palabra no numérica, o simplemente no ingresa nada, nuestro código va a fallar.

Si se requiere la entrada solamente de números se puede usar el siguiente comando dentro de Edit Text:

android:inputType="number"

Así el usuario solo ingresará números, sin embargo, aún así se recomienda usar el método que se explica a continuación, para evitar cualquier posible error.

El contenido del Edit Text se convierte a una variable String, y después hacer lo siguiente.

private EditText valor;
private String dato;
.
.
.
.

dato = valor.getText().toString();

Método para saber si una string es un número o no.

Para realizar esta tarea, se usará Float.parseFloat(valor) el cual tiene la cualidad de arrojar una excepción cuando no puede convertir la variable a tipo Float.

Para que no exista un error al momento de convertir se usara try/catch, donde:

  • Si todo sale bien se regresará el contenido en Try, que sera True.
  • Pero si algo salió mal, entonces se regresará el contenido en catch, que será False.

El código es el siguiente:

private boolean esNumero(String valor)
{
  try 
  {
     Float.parseFloat(valor);
     return true;
  } catch (NumberFormatException nfe)
  {
     return false;
  }
}

Sólo es cuestión de llamar a este método dándole una String, y regresara True (si es número) o False (si no es número).

El método esNumero(string), regresa una variable tipo Bool.

Dentro de este método se encuentra el Try/Catch.

En Try se coloca el código Float.parseFloat(valor) seguido por return true, lo que significa que completó exitosamente la acción anterior, por lo tanto va a regresar true, y no entrara al catch.

Pero si no pudo convertir la variable string a float, indica que no es un número, por lo tanto se ira al catch, donde se coloca el código return false, indicando que no es un número.

De esta manera nuestro método esNumero, nos dirá si es número o no.

Teniendo como entrada una variable tipo String y como salida una variable tipo Bool.

Llamando al método esNumero().

Para llamarlo simplemente se hace lo siguiente:

string dato = "HOLA"; 
bool num = esNumero(dato);   //El resultado sera num = false;

string dato = "11.3"; 
bool num = esNumero(dato); //El resultado sera num = true;
 

Para más tutoriales de Android Studio, puedes ir al nuestra sección de Android Studio.