Programa de Kotlin para verificar si una cadena es numérica

En este programa, aprenderá diferentes técnicas para verificar si una cadena es numérica o no en Kotlin.

Ejemplo 1: comprobar si una cadena es numérica

 import java.lang.Double.parseDouble fun main(args: Array) ( val string = "12345s15" var numeric = true try ( val num = parseDouble(string) ) catch (e: NumberFormatException) ( numeric = false ) if (numeric) println("$string is a number") else println("$string is not a number") )

Cuando ejecute el programa, la salida será:

 12345s15 no es un número

En el programa anterior, tenemos una Stringcadena con nombre que contiene la cadena a verificar. También tenemos un valor booleano numérico que almacena si el resultado final es numérico o no.

Para comprobar si la cadena contiene solo números, en el bloque try, usamos Doubleel parseDouble()método de para convertir la cadena a Double.

Si arroja un error (es decir, NumberFormatExceptionerror), significa que la cadena no es un número y que numérico está configurado como false. De lo contrario, es un número.

Sin embargo, si desea verificar si, para varias cadenas, necesitaría cambiarlo a una función. Y, la lógica se basa en lanzar excepciones, esto puede resultar bastante caro.

En cambio, podemos usar el poder de las expresiones regulares para verificar si la cadena es numérica o no, como se muestra a continuación.

Ejemplo 2: compruebe si una cadena es numérica o no usa expresiones regulares (regex)

 fun main(args: Array) ( val string = "-1234.15" var numeric = true numeric = string.matches("-?\d+(\.\d+)?".toRegex()) if (numeric) println("$string is a number") else println("$string is not a number") )

Cuando ejecute el programa, la salida será:

 -1234.15 es un número

En el programa anterior, en lugar de usar un bloque try-catch, usamos regex para verificar si la cadena es numérica o no. Esto se hace usando el matches()método de String .

En el matches()método,

  • -?permite cero o más -para números negativos en la cadena.
  • \d+comprueba que la cadena debe tener al menos 1 o más números ( \d).
  • (\.\d+)?permite cero o más del patrón dado (\.\d+)en el que
    • \.comprueba si la cadena contiene .(puntos decimales) o no
    • En caso afirmativo, debe ir seguido de al menos uno o más números \d+.

Aquí está el código Java equivalente: programa Java para verificar si una cadena es numérica o no.

Articulos interesantes...