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 String
string 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 Double
o parseDouble()
método de para converter a string em a Double
.
Se gerar um erro (ou seja, NumberFormatException
erro), 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.