WHAT'S NEW?
Loading...

Memeriksa Apakah Suatu String Merupakan Bilangan di Java


Saat membuat program seringkali kita harus melakukan pemeriksaan apakah suatu String merupakan bilangan atau bukan. Contohnya apabila program kita menerima masukan umur kita harus memastikan bahwa nilai yang dimasukkan merupakan bilangan bukan karakter-karakter lain. Permasalahan ini dapat dipecahkan dengan membuat fungsi pemeriksa. Membuat fungsi pemeriksa bilangan bulat bukanlah tugas yang sulit, namun apabila bilangan yang perlu diperiksa ternyata lebih kompleks (misalnya meliputi bilangan oktal, hexadesimal, tanda positif - negatif, format bilangan Long, dll.) tentu membuat fungsi pemeriksa yang komprehensif akan menghabiskan waktu kita.
Pembaca tentu sering mendengar istilah don't reinvent the wheel. Apabila ada orang lain yang telah memecahkan permasalahan yang sama dengan yang ingin kita selesaikan, maka akan lebih baik jika kita menggunakan implementasi yang telah ada. Apalagi jika implementasi tersebut telah teruji. Oleh karena itu, daripada harus membuat ulang fungsi pemeriksa bilangan untuk permasalahan di atas, kita dapat menggunakan method isNumeric atau isNumber yang tersedia dari pustaka Apache Commons Lang API.
import org.apache.commons.lang3.StringUtils;
import org.apache.commons.lang3.math.NumberUtils;
public class NumericNumber {
public static void main(String[] args) {
System.out.println("isNumeric:");
System.out.println(
"StringUtils.isNumeric(null) = " + StringUtils.isNumeric(null) + "\n" +
"StringUtils.isNumeric(\"\") = " + StringUtils.isNumeric("") + "\n" +
"StringUtils.isNumeric(\" \") = " + StringUtils.isNumeric(" ") + "\n" +
"StringUtils.isNumeric(\"123\") = " + StringUtils.isNumeric("123") + "\n" +
"StringUtils.isNumeric(\"ab2c\") = " + StringUtils.isNumeric("ab2c") + "\n" +
"StringUtils.isNumeric(\"-123\") = " + StringUtils.isNumeric("-123") + "\n" +
"StringUtils.isNumeric(\"+123\") = " + StringUtils.isNumeric("+123") + "\n" +
"StringUtils.isNumeric(\"12 3\") = " + StringUtils.isNumeric("12 3") + "\n" +
"StringUtils.isNumeric(\"12-3\") = " + StringUtils.isNumeric("12-3") + "\n" +
"StringUtils.isNumeric(\"12.3\") = " + StringUtils.isNumeric("12.3") + "\n"
);
System.out.println("isNumber:");
System.out.println(
"NumberUtils.isNumber(null) = " + NumberUtils.isNumber(null) + "\n" +
"NumberUtils.isNumber(\"\") = " + NumberUtils.isNumber("") + "\n" +
"NumberUtils.isNumber(\" \") = " + NumberUtils.isNumber(" ") + "\n" +
"NumberUtils.isNumber(\"123\") = " + NumberUtils.isNumber("123") + "\n" +
"NumberUtils.isNumber(\"ab2c\") = " + NumberUtils.isNumber("ab2c") + "\n" +
"NumberUtils.isNumber(\"-123\") = " + NumberUtils.isNumber("-123") + "\n" +
"NumberUtils.isNumber(\"+123\") = " + NumberUtils.isNumber("+123") + "\n" +
"NumberUtils.isNumber(\"12 3\") = " + NumberUtils.isNumber("12 3") + "\n" +
"NumberUtils.isNumber(\"12-3\") = " + NumberUtils.isNumber("12-3") + "\n" +
"NumberUtils.isNumber(\"12.3\") = " + NumberUtils.isNumber("12.3") + "\n"
);
}
}
Program di atas akan memberikan keluaran seperti yang terlihat di bawah ini:
        
isNumeric:
StringUtils.isNumeric(null) = false
StringUtils.isNumeric("") = false
StringUtils.isNumeric(" ") = false
StringUtils.isNumeric("123") = true
StringUtils.isNumeric("ab2c") = false
StringUtils.isNumeric("-123") = false
StringUtils.isNumeric("+123") = false
StringUtils.isNumeric("12 3") = false
StringUtils.isNumeric("12-3") = false
StringUtils.isNumeric("12.3") = false
isNumber:
NumberUtils.isNumber(null) = false
NumberUtils.isNumber("") = false
NumberUtils.isNumber(" ") = false
NumberUtils.isNumber("123") = true
NumberUtils.isNumber("ab2c") = false
NumberUtils.isNumber("-123") = true
NumberUtils.isNumber("+123") = false
NumberUtils.isNumber("12 3") = false
NumberUtils.isNumber("12-3") = false
NumberUtils.isNumber("12.3") = true
Dari keluaran di atas kita dapat melihat bahwa method isNumeric dan isNumber dapat menyelesaikan permasalahan yang kita hadapi. Perbedaan antara keduanya adalah isNumeric hanya memeriksa apakah String yang diberikan berisi bilangan cacah tanpa mendukung tanda positif atau negatif, koma, serta karakter yang menunjukkan tipe data Long, Double, float, dll. sedangkan isNumber mendukung berbagai macam tanda bilangan tersebut.

0 komentar:

Posting Komentar