English | 简体中文 | 繁體中文 | Русский язык | Français | Español | Português | Deutsch | 日本語 | 한국어 | Italiano | بالعربية
Neste programa, você aprenderá diferentes técnicas para verificar se uma string é um número em Kotlin.
import java.lang.Double.parseDouble fun main(args: Array<String>) { val string = "12345s15" var numeric = true try { val num = parseDouble(string) } catch (e: NumberFormatException) { numeric = false } if (numeric) println("$string é um número") else println("$string não é um número") }
Quando você executar o programa, a saída será:
12345s15 Não é um número
No programa acima, temos uma string chamada string que contém a string a ser verificada. Também temos um valor booleano numeric para armazenar o resultado final se for um número.
Para verificar se a string contém apenas números, usamos o método parseDouble() da classe Double no bloco try.
Se lançar um erro (isto é, um erro NumberFormatException), significa que a string não é um número e configura numeric como false. Caso contrário, é um número.
Mas, se precisar verificar um número específico de strings, é necessário convertê-lo em função. E a lógica é baseada em lançar exceções, o que pode ser muito caro.
Por outro lado, podemos usar as funcionalidades das expressões regulares para verificar se uma string é um número, conforme mostrado a seguir.
fun main(args: Array<String>) { val string = "-1234.15" var numeric = true numeric = string.matches("-?\\d+(\\.\\d+)?".toRegex()) if (numeric) println("$string é um número") else println("$string não é um número") }
Quando você executar o programa, a saída será:
-1234.15 É um número
No programa acima, usamos regex para verificar se a string é um número, em vez de usar try-catch. Isso é feito usando o método matches() da String.
No bloco catch. Isso é feito usando o método matches() da String.
-? Permite zero ou maior-O número negativo na string.
\\d+ Verificar se a string deve pelo menos conter1ou mais números (\\d)。
(\\.\\d+)? Permite zero ou mais padrões dados (\\.\\d+),onde
\\.. Verificar se a string contém \\。(ponto decimal)
Se for o caso, deve pelo menos seguir um ou mais números \\d+。
Este é o código Java equivalente:Programa Java para Verificar se uma String é um Número。