W tym programie nauczysz się różnych technik sprawdzania, czy ciąg jest numeryczny, czy nie w Javie.
Aby zrozumieć ten przykład, należy znać następujące tematy dotyczące programowania w języku Java:
- Ciąg Java
- Obsługa wyjątków Java
Przykład 1: Sprawdź, czy ciąg jest liczbowy
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"); ) )
Wynik
12345.15 to liczba
W powyższym programie mamy String
nazwany ciąg zawierający ciąg do sprawdzenia. Mamy również wartość liczbową logiczną, która przechowuje, czy wynik końcowy jest liczbowy, czy nie.
Aby sprawdzić, czy ciąg zawiera tylko cyfry, w bloku try, używamy Double
„s parseDouble()
metody do konwertowania ciąg do Double
.
Jeśli zgłasza błąd (tj. NumberFormatException
Błąd), oznacza to, że ciąg nie jest liczbą, a wartość numeryczna jest ustawiona na false
. W przeciwnym razie to liczba.
Jeśli jednak chcesz sprawdzić, czy jest to liczba ciągów, musisz zmienić ją na funkcję. Logika opiera się na rzucaniu wyjątków, może to być dość kosztowne.
Zamiast tego możemy użyć mocy wyrażeń regularnych, aby sprawdzić, czy łańcuch jest liczbowy, czy nie, jak pokazano poniżej.
Przykład 2: Sprawdź, czy ciąg jest liczbowy, czy nie używa wyrażeń regularnych (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"); ) )
Wynik
-1234,15 to liczba
W powyższym programie, zamiast używać bloku try-catch, używamy wyrażenia regularnego, aby sprawdzić, czy łańcuch jest numeryczny, czy nie. Odbywa się to za pomocą matches()
metody Stringa.
W matches()
metodzie
-?
dopuszcza zero lub więcej-
dla liczb ujemnych w ciągu.\d+
sprawdza, czy ciąg musi mieć co najmniej 1 lub więcej liczb (\d
).(\.\d+)?
zezwala na zero lub więcej podanego wzorca,(\.\d+)
w którym\.
sprawdza, czy ciąg zawiera.
(kropki dziesiętne), czy nie- Jeśli tak, powinna następować co najmniej jedna lub więcej cyfr
\d+
.