Kotlinov program za preverjanje, ali je niz numeričen

V tem programu boste spoznali različne tehnike za preverjanje, ali je niz v Kotlinu številčen ali ne.

Primer 1: Preverite, ali je niz številski

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

Ko zaženete program, bo rezultat:

 12345s15 ni številka

V zgornjem programu imamo Stringimenovani niz, ki vsebuje niz, ki ga je treba preveriti. Imamo tudi logično vrednost numerično, ki shrani, če je končni rezultat številčen ali ne.

Če želimo preveriti, ali niz vsebuje samo številke, v bloku try uporabimo metodo Double'' parseDouble()za pretvorbo niza v Double.

Če vrže napako (tj. NumberFormatExceptionNapako), pomeni, da niz ni število in je številsko nastavljeno na false. V nasprotnem primeru je številka.

Če pa želite preveriti, ali bi ga morali za več nizov spremeniti v funkcijo. Logika temelji na metanju izjem, kar je lahko precej drago.

Namesto tega lahko z močjo regularnih izrazov preverimo, ali je niz številski ali ne, kot je prikazano spodaj.

2. primer: Preverite, ali je niz številski ali ne uporablja regularnih izrazov (regularni izraz)

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

Ko zaženete program, bo rezultat:

 -1234,15 je številka

V zgornjem programu namesto bloka try-catch uporabimo regularni izraz, da preverimo, ali je niz številski ali ne. To se naredi z matches()metodo String .

V matches()metodi je

  • -?dovoljuje nič ali več -za negativna števila v nizu.
  • \d+preveri, ali mora niz imeti vsaj 1 ali več številk ( \d).
  • (\.\d+)?omogoča nič ali več danega vzorca, (\.\d+)v katerem
    • \.preveri, ali niz vsebuje .(decimalna mesta) ali ne
    • Če je odgovor pritrdilen, mu mora slediti vsaj ena ali več številk \d+.

Tu je enakovredna koda Java: program Java za preverjanje, ali je niz številski ali ne.

Zanimive Članki...