Programa Kotlin para verificar se uma string é numérica

Neste programa, você aprenderá diferentes técnicas para verificar se uma string é numérica ou não no Kotlin.

Exemplo 1: Verifique se uma string é 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") )

Quando você executa o programa, a saída será:

 12345s15 não é um número

No programa acima, temos uma Stringstring nomeada que contém a string a ser verificada. Também temos um valor booleano numérico que armazena se o resultado final é numérico ou não.

Para verificar se a string contém apenas números, no bloco try, usamos Doubleo parseDouble()método de para converter a string em a Double.

Se gerar um erro (ou seja, NumberFormatExceptionerro), significa que string não é um número e numérico está definido como false. Caso contrário, é um número.

No entanto, se você quiser verificar se, para uma série de strings, será necessário alterá-la para uma função. E, a lógica é baseada em exceções de lançamento, isso pode ser muito caro.

Em vez disso, podemos usar o poder das expressões regulares para verificar se a string é numérica ou não conforme mostrado abaixo.

Exemplo 2: verifique se uma string é numérica ou não usa expressões 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") )

Quando você executa o programa, a saída será:

 -1234,15 é um número

No programa acima, em vez de usar um bloco try-catch, usamos regex para verificar se a string é numérica ou não. Isso é feito usando o matches()método de String .

No matches()método,

  • -?permite zero ou mais -para números negativos na string.
  • \d+verifica se a string deve ter pelo menos 1 ou mais números ( \d).
  • (\.\d+)?permite zero ou mais do padrão fornecido (\.\d+)no qual
    • \.verifica se a string contém .(pontos decimais) ou não
    • Em caso afirmativo, deve ser seguido de pelo menos um ou mais números \d+.

Aqui está o código Java equivalente: programa Java para verificar se uma string é numérica ou não.

Artigos interessantes...