Programul Kotlin pentru a verifica dacă un șir este numeric

În acest program, veți învăța diferite tehnici pentru a verifica dacă un șir este numeric sau nu în Kotlin.

Exemplul 1: verificați dacă un șir este numeric

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

Când rulați programul, ieșirea va fi:

 12345s15 nu este un număr

În programul de mai sus, avem un Stringșir denumit care conține șirul care trebuie verificat. De asemenea, avem o valoare booleană numerică care stochează dacă rezultatul final este numeric sau nu.

Pentru a verifica dacă șirul conține doar numere, în blocul try, vom folosi Doublee parseDouble()metoda de a converti șirul de la o Double.

Dacă aruncă o eroare (adică NumberFormatExceptioneroare), înseamnă că șirul nu este un număr și numeric este setat la false. Altfel, este un număr.

Cu toate acestea, dacă doriți să verificați dacă, pentru un număr de șiruri, ar trebui să îl schimbați într-o funcție. Și, logica se bazează pe aruncarea de excepții, acest lucru poate fi destul de scump.

În schimb, putem folosi puterea expresiilor regulate pentru a verifica dacă șirul este numeric sau nu așa cum se arată mai jos.

Exemplul 2: verificați dacă un șir este numeric sau nu utilizând expresii regulate (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") )

Când rulați programul, ieșirea va fi:

 -1234.15 este un număr

În programul de mai sus, în loc să folosim un bloc try-catch, folosim regex pentru a verifica dacă șirul este numeric sau nu. Acest lucru se face folosind matches()metoda lui String .

În matches()metodă,

  • -?permite zero sau mai mult -pentru numerele negative din șir.
  • \d+verifică șirul trebuie să aibă cel puțin 1 sau mai multe numere ( \d).
  • (\.\d+)?permite zero sau mai multe din modelul dat (\.\d+)în care
    • \.verifică dacă șirul conține .(puncte zecimale) sau nu
    • Dacă da, ar trebui să fie urmat de cel puțin unul sau mai multe numere \d+.

Iată codul Java echivalent: program Java pentru a verifica dacă un șir este numeric sau nu.

Articole interesante...