Java-program til at kontrollere, om en streng er numerisk

I dette program lærer du forskellige teknikker til at kontrollere, om en streng er numerisk eller ikke i Java.

For at forstå dette eksempel skal du have kendskab til følgende Java-programmeringsemner:

  • Java-streng
  • Java Undtagelse Håndtering

Eksempel 1: Kontroller, om en streng er numerisk

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

Produktion

 12345.15 er et tal

I ovenstående program har vi en Stringnavngivet streng, der indeholder den streng, der skal kontrolleres. Vi har også et boolsk værdital, der gemmes, hvis det endelige resultat er numerisk eller ej.

For at kontrollere om strengen indeholder kun tal, i try-blok, bruger vi Double's parseDouble()metode til at konvertere streng til en Double.

Hvis det kaster en fejl (dvs. NumberFormatExceptionfejl), betyder det, at strengen ikke er et tal, og numerisk er indstillet til false. Ellers er det et tal.

Men hvis du vil kontrollere, om der er et antal strenge, skal du ændre det til en funktion. Og logikken er baseret på kaste undtagelser, dette kan være ret dyrt.

I stedet kan vi bruge kraften i regulære udtryk til at kontrollere, om strengen er numerisk eller ikke som vist nedenfor.

Eksempel 2: Kontroller, om en streng er numerisk eller ikke bruger regulære udtryk (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"); ) )

Produktion

 -1234,15 er et tal

I det ovennævnte program bruger vi regex i stedet for at bruge en prøvefangst-blok til at kontrollere, om strengen er numerisk eller ej. Dette gøres ved hjælp af Strings matches()metode.

I matches()metoden,

  • -?tillader nul eller mere -for negative tal i strengen.
  • \d+kontrollerer strengen skal have mindst 1 eller flere tal ( \d).
  • (\.\d+)?tillader nul eller flere af det givne mønster (\.\d+), hvori
    • \.kontrollerer, om strengen indeholder .(decimaltegn) eller ej
    • Hvis ja, skal det efterfølges af mindst et eller flere tal \d+.

Interessante artikler...