Dalam program ini, Anda akan mempelajari berbagai teknik untuk memeriksa apakah suatu string numerik atau tidak di Java.
Untuk memahami contoh ini, Anda harus memiliki pengetahuan tentang topik pemrograman Java berikut:
- String Java
- Penanganan Pengecualian Java
Contoh 1: Periksa apakah sebuah string adalah numerik
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"); ) )
Keluaran
12345.15 adalah angka
Dalam program di atas, kami memiliki String
string bernama yang berisi string yang akan diperiksa. Kami juga memiliki nilai numerik boolean yang menyimpan apakah hasil akhirnya berupa angka atau bukan.
Untuk memeriksa apakah string berisi angka saja, di blok try, kita menggunakan Double
's parseDouble()
metode untuk mengkonversi string ke Double
.
Jika melontarkan kesalahan (mis. NumberFormatException
Kesalahan), itu berarti string bukan angka dan numerik disetel ke false
. Lain, itu angka.
Namun, jika Anda ingin memeriksa apakah ada sejumlah string, Anda perlu mengubahnya menjadi sebuah fungsi. Dan, logikanya didasarkan pada pengecualian lemparan, ini bisa sangat mahal.
Sebagai gantinya, kita dapat menggunakan kekuatan ekspresi reguler untuk memeriksa apakah string itu numerik atau tidak seperti yang ditunjukkan di bawah ini.
Contoh 2: Periksa apakah sebuah string adalah numerik atau tidak menggunakan ekspresi reguler (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"); ) )
Keluaran
-1234.15 adalah angka
Dalam program di atas, alih-alih menggunakan blok coba-tangkap, kami menggunakan regex untuk memeriksa apakah string itu numerik atau tidak. Ini dilakukan dengan menggunakan matches()
metode String .
Dalam matches()
metodenya,
-?
memungkinkan nol atau lebih-
untuk bilangan negatif dalam string.\d+
memeriksa string harus memiliki setidaknya 1 atau lebih angka (\d
).(\.\d+)?
memungkinkan nol atau lebih dari pola yang diberikan(\.\d+)
di mana\.
memeriksa apakah string berisi.
(titik desimal) atau tidak- Jika ya, itu harus diikuti oleh setidaknya satu atau lebih nomor
\d+
.