Program Java 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 Java.

Pentru a înțelege acest exemplu, ar trebui să aveți cunoștințele despre următoarele subiecte de programare Java:

  • Șir Java
  • Java Exception Handling

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

 public class Numeric ( public static void main(String() args) ( String string = "12345.15"; boolean numeric = true; try ( Double num = Double.parseDouble(string); ) catch (NumberFormatException e) ( numeric = false; ) if(numeric) System.out.println(string + " is a number"); else System.out.println(string + " is not a number"); ) )

Ieșire

 12345.15 este un număr

În programul de mai sus, avem un Stringșir denumit care conține șirul de 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)

 public class Numeric ( public static void main(String() args) ( String string = "-1234.15"; boolean numeric = true; numeric = string.matches("-?\d+(\.\d+)?"); if(numeric) System.out.println(string + " is a number"); else System.out.println(string + " is not a number"); ) )

Ieșire

 -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+.

Articole interesante...