V tomto programe sa naučíte rôzne techniky, ako skontrolovať, či je reťazec v Jave číselný alebo nie.
Aby ste pochopili tento príklad, mali by ste mať znalosti nasledujúcich tém programovania v jazyku Java:
- Java String
- Spracovanie výnimiek Java
Príklad 1: Skontrolujte, či je reťazec číselný
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"); ) )
Výkon
12345.15 je číslo
Vo vyššie uvedenom programe máme String
pomenovaný reťazec, ktorý obsahuje reťazec, ktorý sa má skontrolovať. Máme tiež logickú hodnotu s číselnou hodnotou, ktorá ukladá, či je konečný výsledok číselný alebo nie.
Ak chcete zistiť, či reťazec obsahuje iba čísla v bloku try, používame Double
, s parseDouble()
metódu previesť reťazec na Double
.
Ak vyhodí chybu (tj NumberFormatException
chybu), znamená to, že reťazec nie je číslo a číselná hodnota je nastavená na false
. Inak je to číslo.
Ak však chcete skontrolovať, či existuje počet reťazcov, budete ho musieť zmeniť na funkciu. Logika je založená na vyhadzovaní výnimiek, čo môže byť dosť drahé.
Namiesto toho môžeme pomocou sily regulárnych výrazov skontrolovať, či je reťazec číselný alebo nie, ako je uvedené nižšie.
Príklad 2: Skontrolujte, či je reťazec číselný alebo nepoužíva regulárne výrazy (regulárny výraz)
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"); ) )
Výkon
-1234,15 je číslo
Vo vyššie uvedenom programe namiesto použitia bloku try-catch používame regex na kontrolu, či je reťazec číselný alebo nie. To sa deje pomocou Stringovej matches()
metódy.
V matches()
metóde
-?
umožňuje nulu alebo viac-
pre záporné čísla v reťazci.\d+
skontroluje, či musí mať reťazec minimálne 1 alebo viac čísel (\d
).(\.\d+)?
umožňuje nulu alebo viac z daného vzoru,(\.\d+)
v ktorom\.
skontroluje, či reťazec obsahuje.
(desatinné čiarky) alebo nie- Ak áno, malo by za ním byť minimálne jedno alebo viac čísel
\d+
.