Kotlin-programmet for å sjekke om en streng er numerisk

I dette programmet lærer du forskjellige teknikker for å sjekke om en streng er numerisk eller ikke i Kotlin.

Eksempel 1: Sjekk 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 kjører programmet, vil utdataene være:

 12345s15 er ikke et tall

I programmet ovenfor har vi en Stringnavngitt streng som inneholder strengen som skal kontrolleres. Vi har også en boolsk verditall som lagrer hvis det endelige resultatet er numerisk eller ikke.

For å sjekke om strengen inneholder bare tall, i forsøk blokk, bruker vi Double's parseDouble()metode for å konvertere strengen til en Double.

Hvis det kaster en feil (dvs. NumberFormatExceptionfeil), betyr det at streng ikke er et tall og numerisk er satt til false. Ellers er det et tall.

Men hvis du vil sjekke om du for et antall strenger må endre den til en funksjon. Og logikken er basert på kaste unntak, dette kan være ganske dyrt.

I stedet kan vi bruke kraften til vanlige uttrykk for å sjekke om strengen er numerisk eller ikke som vist nedenfor.

Eksempel 2: Sjekk om en streng er numerisk eller ikke bruker regulære uttrykk (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 kjører programmet, vil utdataene være:

 -1234,15 er et tall

I det ovennevnte programmet, i stedet for å bruke en prøvefangst-blokk, bruker vi regex for å sjekke om strengen er numerisk eller ikke. Dette gjøres ved hjelp av String- matches()metoden.

I matches()metoden,

  • -?tillater null eller mer -for negative tall i strengen.
  • \d+sjekker strengen må ha minst 1 eller flere tall ( \d).
  • (\.\d+)?tillater null eller flere av det gitte mønsteret (\.\d+)der
    • \.sjekker om strengen inneholder .(desimaltegn) eller ikke
    • Hvis ja, bør det følges av minst ett eller flere tall \d+.

Her er ekvivalent Java-kode: Java-program for å sjekke om en streng er numerisk eller ikke.

Interessante artikler...