Java-programma om te controleren of een tekenreeks numeriek is

In dit programma leer je verschillende technieken om te controleren of een string numeriek is of niet in Java.

Om dit voorbeeld te begrijpen, moet u kennis hebben van de volgende Java-programmeeronderwerpen:

  • Java-tekenreeks
  • Afhandeling van Java-uitzonderingen

Voorbeeld 1: controleer of een tekenreeks numeriek is

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

Uitvoer

 12345.15 is een nummer

In het bovenstaande programma hebben we een Stringbenoemde string die de string bevat die moet worden gecontroleerd. We hebben ook een booleaanse waarde numeriek die opslaat of het eindresultaat numeriek is of niet.

Om te controleren of de string alleen getallen bevat, gebruiken we in het try-blok Doublede parseDouble()methode van om de string naar een Double.

Als het een fout genereert (dwz een NumberFormatExceptionfout), betekent dit dat de tekenreeks geen getal is en dat numeriek is ingesteld op false. Anders is het een nummer.

Als u echter wilt controleren of voor een aantal strings, u dit in een functie moet wijzigen. En de logica is gebaseerd op het gooien van uitzonderingen, dit kan behoorlijk duur zijn.

In plaats daarvan kunnen we de kracht van reguliere expressies gebruiken om te controleren of de tekenreeks numeriek is of niet, zoals hieronder wordt weergegeven.

Voorbeeld 2: controleer of een tekenreeks numeriek is of geen reguliere expressies gebruikt (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"); ) )

Uitvoer

 -1234.15 is een nummer

In het bovenstaande programma gebruiken we in plaats van een try-catch-blok, regex om te controleren of de tekenreeks numeriek is of niet. Dit wordt gedaan met behulp van de String- matches()methode.

In de matches()methode,

  • -?staat nul of meer toe -voor negatieve getallen in de string.
  • \d+controleert of de string minstens 1 of meer cijfers moet hebben ( \d).
  • (\.\d+)?staat nul of meer van het gegeven patroon toe (\.\d+)waarin
    • \.controleert of de string .(decimalen) bevat of niet
    • Zo ja, dan moet het worden gevolgd door ten minste een of meer cijfers \d+.

Interessante artikelen...