Java-program for å sjekke om en streng er numerisk

I dette programmet lærer du forskjellige teknikker for å sjekke om en streng er numerisk eller ikke i Java.

For å forstå dette eksemplet, bør du ha kunnskap om følgende Java-programmeringsemner:

  • Java-streng
  • Java Exception Handling

Eksempel 1: Sjekk 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"); ) )

Produksjon

 12345.15 er et tall

I programmet ovenfor har vi en Stringnavngitt streng som inneholder strengen som skal kontrolleres. Vi har også en boolsk verditall som lagrer hvis det endelige resultatet er numerisk eller ikke.

For å sjekke om strengen inneholder bare tall, i forsøk blokk, bruker vi Double's parseDouble()metode for å konvertere strengen til en Double.

Hvis det kaster en feil (dvs. NumberFormatExceptionfeil), betyr det at strengen ikke er et tall og numerisk er satt til false. Ellers er det et tall.

Men hvis du vil sjekke om det er et antall strenger, må du endre det til en funksjon. Og logikken er basert på kaste unntak, dette kan være ganske dyrt.

I stedet kan vi bruke kraften til vanlige uttrykk for å sjekke om strengen er numerisk eller ikke som vist nedenfor.

Eksempel 2: Sjekk om en streng er numerisk eller ikke bruker regulære uttrykk (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"); ) )

Produksjon

 -1234,15 er et tall

I det ovennevnte programmet, i stedet for å bruke en prøvefangst-blokk, bruker vi regex for å sjekke om strengen er numerisk eller ikke. Dette gjøres ved hjelp av String- matches()metoden.

I matches()metoden,

  • -?tillater null eller mer -for negative tall i strengen.
  • \d+sjekker strengen må ha minst 1 eller flere tall ( \d).
  • (\.\d+)?tillater null eller flere av det gitte mønsteret (\.\d+)der
    • \.sjekker om strengen inneholder .(desimaltegn) eller ikke
    • Hvis ja, bør det følges av minst ett eller flere tall \d+.

Interessante artikler...