U ovom programu naučit ćete različite tehnike za provjeru je li niz numerički ili nije u Javi.
Da biste razumjeli ovaj primjer, trebali biste imati znanje o sljedećim temama programiranja Java:
- Java String
- Rukovanje Java iznimkama
Primjer 1: Provjerite je li niz numerički
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"); ) )
Izlaz
12345.15 je broj
U gornjem programu imamo String
imenovani niz koji sadrži niz koji treba provjeriti. Također imamo logičku vrijednost numeričku koja se pohranjuje je li konačni rezultat numerički ili nije.
Provjeriti da li je niz sadrži samo brojeve, u try bloku, mi koristimo Double
„s parseDouble()
metodu za pretvaranje string do Double
.
Ako izbaci pogrešku (tj. NumberFormatException
Pogrešku), znači da niz nije broj i da je numerički postavljen na false
. Inače, to je broj.
Međutim, ako želite provjeriti postoji li određeni broj nizova, morat ćete ga promijeniti u funkciju. I, logika se temelji na izbacivanju iznimaka, ovo može biti prilično skupo.
Umjesto toga, možemo upotrijebiti moć regularnih izraza da provjerimo je li niz numerički ili nije kako je prikazano u nastavku.
Primjer 2: Provjerite je li niz numerički ili ne koristi regularne izraze (regularni izraz)
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"); ) )
Izlaz
-1234,15 je broj
U gornjem programu, umjesto bloka try-catch, koristimo regularni izraz za provjeru je li niz numerički ili nije. To se radi Stringovom matches()
metodom.
U matches()
metodi,
-?
dopušta nulu ili više-
za negativne brojeve u nizu.\d+
provjerava da niz mora imati najmanje 1 ili više brojeva (\d
).(\.\d+)?
dopušta nula ili više zadanog uzorka(\.\d+)
u kojem\.
provjerava sadrži li niz.
(decimalne točke) ili ne- Ako je odgovor da, trebao bi ga slijediti barem jedan ili više brojeva
\d+
.