Kotlinov program za provjeru je li niz numerički

U ovom programu naučit ćete različite tehnike kako biste provjerili je li niz numerički ili nije u Kotlinu.

Primjer 1: Provjerite je li niz numerički

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

Kada pokrenete program, izlaz će biti:

 12345s15 nije broj

U gore navedenom programu imamo Stringimenovani niz koji sadrži niz koji treba provjeriti. Također imamo logičku vrijednost numeričku koja se pohranjuje je li konačni rezultat numerički ili nije.

Da biste provjerili je li niz sadrži samo brojeve, u try bloku, mi koristimo Double„s parseDouble()metodu za pretvaranje string do Double.

Ako izbaci pogrešku (tj. NumberFormatExceptionPogrešku), znači da niz nije broj i da je numerički postavljen na false. Inače, to je broj.

Međutim, ako želite provjeriti želite li ga za određeni broj nizova promijeniti u funkciju. I, logika se temelji na izbacivanju iznimaka, ovo može biti prilično skupo.

Umjesto toga, možemo upotrijebiti moć regularnih izraza da provjerimo je li niz numerički ili nije kako je prikazano u nastavku.

Primjer 2: Provjerite je li niz numerički ili ne koristi regularne izraze (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") )

Kada pokrenete program, izlaz će biti:

 -1234,15 je broj

U gornjem programu, umjesto bloka try-catch, koristimo regularni izraz za provjeru je li niz numerički ili nije. To se radi Stringovom matches()metodom.

U matches()metodi,

  • -?dopušta nulu ili više -za negativne brojeve u nizu.
  • \d+provjerava da niz mora imati najmanje 1 ili više brojeva ( \d).
  • (\.\d+)?dopušta nula ili više zadanog uzorka (\.\d+)u kojem
    • \.provjerava sadrži li niz .(decimalne točke) ili ne
    • Ako je odgovor da, trebao bi ga slijediti barem jedan ili više brojeva \d+.

Evo ekvivalentnog Java koda: Java program za provjeru je li niz numerički ili nije.

Zanimljivi članci...