Selles programmis saate teada erinevaid tehnikaid, et kontrollida, kas string on Kotlinis arvuline või mitte.
Näide 1: kontrollige, kas string on numbriline
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") )
Programmi käivitamisel on väljund järgmine:
12345s15 ei ole number
Ülaltoodud programmis on meil String
nimeline string, mis sisaldab kontrollitavat stringi. Meil on ka boolean väärtusarv, mis salvestatakse, kui lõpptulemus on arvuline või mitte.
Kontrollimaks, kas string sisaldab ainult numbreid, et proovida blokeerida, me kasutame Double
's parseDouble()
meetod teisendada stringi Double
.
Kui see viskab vea (st NumberFormatException
viga), tähendab see, et string pole arv ja numbriline on seatud väärtusele false
. Muidu, see on number.
Kui soovite siiski kontrollida, kas peate mõne stringi jaoks selle funktsiooni muutma. Ja loogika põhineb erandite viskamisel, see võib olla üsna kallis.
Selle asemel võime kasutada regulaaravaldiste jõudu, et kontrollida, kas string on numbriline või mitte, nagu allpool näidatud.
Näide 2: kontrollige, kas string on numbriline või ei kasuta regulaaravaldisi (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") )
Programmi käivitamisel on väljund järgmine:
-1234.15 on arv
Ülaltoodud programmis kasutame proovimise püüdmise ploki asemel regexi, et kontrollida, kas string on arvuline või mitte. Seda tehakse Stringi matches()
meetodil.
In matches()
meetodit,
-?
lubab-
stringi negatiivsete arvude korral nulli või rohkem .\d+
kontrollib, et stringil peab olema vähemalt 1 või enam numbrit (\d
).(\.\d+)?
võimaldab nulli või enamat antud mustrist(\.\d+)
, milles\.
kontrollib, kas string sisaldab.
(kümnendkoha täpsust) või mitte- Kui jah, peaks sellele järgnema vähemalt üks või mitu numbrit
\d+
.
Siin on samaväärne Java-kood: Java-programm, et kontrollida, kas string on numbriline või mitte.