Programma Kotlin per verificare se una stringa è numerica

In questo programma imparerai diverse tecniche per verificare se una stringa è numerica o meno in Kotlin.

Esempio 1: controlla se una stringa è numerica

 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 esegui il programma, l'output sarà:

 12345s15 non è un numero

Nel programma precedente, abbiamo una Stringstringa denominata che contiene la stringa da controllare. Abbiamo anche un valore booleano numerico che memorizza se il risultato finale è numerico o meno.

Per verificare se la stringa contiene solo numeri, nel blocco try, utilizziamo Doubleil parseDouble()metodo di per convertire la stringa in un file Double.

Se genera un errore (cioè NumberFormatExceptionerrore), significa che la stringa non è un numero e numeric è impostato su false. Altrimenti, è un numero.

Tuttavia, se vuoi controllare se, per un numero di stringhe, devi cambiarlo in una funzione. E, la logica si basa sul lancio di eccezioni, questo può essere piuttosto costoso.

Invece, possiamo usare la potenza delle espressioni regolari per verificare se la stringa è numerica o meno come mostrato di seguito.

Esempio 2: controlla se una stringa è numerica o non utilizza espressioni regolari (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 esegui il programma, l'output sarà:

 -1234.15 è un numero

Nel programma sopra, invece di utilizzare un blocco try-catch, usiamo regex per verificare se la stringa è numerica o meno. Questo viene fatto usando il matches()metodo di String .

Nel matches()metodo,

  • -?consente zero o più -per i numeri negativi nella stringa.
  • \d+controlla che la stringa debba contenere almeno 1 o più numeri ( \d).
  • (\.\d+)?consente zero o più del modello dato (\.\d+)in cui
    • \.controlla se la stringa contiene .(punti decimali) o meno
    • In caso affermativo, dovrebbe essere seguito da almeno uno o più numeri \d+.

Ecco il codice Java equivalente: programma Java per verificare se una stringa è numerica o meno.

Articoli interessanti...