Kotlin-program til kontrol af, om en streng er numerisk

I dette program lærer du forskellige teknikker til at kontrollere, om en streng er numerisk eller ikke i Kotlin.

Eksempel 1: Kontroller, om en streng er numerisk

 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") )

Når du kører programmet, vil output være:

 12345s15 er ikke et tal

I ovenstående program har vi en Stringnavngivet streng, der indeholder den streng, der skal kontrolleres. Vi har også et boolsk værdital, der gemmes, hvis det endelige resultat er numerisk eller ej.

For at kontrollere, om strengen indeholder tal kun, i try-blok, bruger vi Double's parseDouble()metode til at konvertere streng til en Double.

Hvis det kaster en fejl (dvs. NumberFormatExceptionfejl), betyder det, at streng ikke er et tal, og numerisk er indstillet til false. Ellers er det et tal.

Men hvis du vil kontrollere, om du for et antal strenge skal ændre den til en funktion. Og logikken er baseret på kaste undtagelser, dette kan være ret dyrt.

I stedet kan vi bruge kraften i regulære udtryk til at kontrollere, om strengen er numerisk eller ikke som vist nedenfor.

Eksempel 2: Kontroller, om en streng er numerisk eller ikke bruger regulære udtryk (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") )

Når du kører programmet, vil output være:

 -1234,15 er et tal

I det ovennævnte program bruger vi regex i stedet for at bruge en prøvefangst-blok til at kontrollere, om strengen er numerisk eller ej. Dette gøres ved hjælp af Strings matches()metode.

I matches()metoden,

  • -?tillader nul eller mere -for negative tal i strengen.
  • \d+kontrollerer strengen skal have mindst 1 eller flere tal ( \d).
  • (\.\d+)?tillader nul eller flere af det givne mønster (\.\d+), hvori
    • \.kontrollerer, om strengen indeholder .(decimaltegn) eller ej
    • Hvis ja, skal det efterfølges af mindst et eller flere tal \d+.

Her er den tilsvarende Java-kode: Java-program for at kontrollere, om en streng er numerisk eller ej.

Interessante artikler...