Saya mengalami beberapa kode yang memiliki yang berikut:
String foo = getvalue("foo");
if (StringUtils.isBlank(foo))
doStuff();
else
doOtherStuff();
Ini tampaknya secara fungsional setara dengan yang berikut:
String foo = getvalue("foo");
if (foo.isEmpty())
doStuff();
else
doOtherStuff();
Apakah perbedaan antara keduanya ( org.apache.commons.lang3.StringUtils.isBlank
dan java.lang.String.isEmpty
)?
java
string
string-utils
NSA
sumber
sumber
StringUtils.isEmpty(foo)
yang membantu Anda menghindari pointer nol, sepertiisBlank
, tetapi tidak memeriksa karakter spasi.Jawaban:
StringUtils.isBlank()
memeriksa bahwa setiap karakter string adalah karakter spasi (atau string kosong atau nol). Ini sama sekali berbeda dari sekadar memeriksa apakah string kosong.Dari dokumentasi tertaut:
Untuk perbandingan StringUtils.isEmpty :
Peringatan: Dalam java.lang.String .isBlank () dan java.lang.String .isEmpty () bekerja sama kecuali mereka tidak kembali
true
untuknull
.java.lang.String.isBlank()
java.lang.String.isEmpty()
sumber
Jawaban yang diterima dari @arshajii sepenuhnya benar. Namun hanya menjadi lebih eksplisit dengan mengatakan di bawah ini,
StringUtils.isBlank ()
StringUtils.isEmpty
sumber
StringUtils isEmpty = String isEmpty memeriksa + memeriksa null.
StringUtils isBlank = StringUtils isEmpty memeriksa + memeriksa apakah teks hanya berisi karakter spasi putih.
Tautan yang bermanfaat untuk penyelidikan lebih lanjut:
sumber
StringUtils.isBlank()
juga akan memeriksa nol, sedangkan ini:akan melempar
NullPointerException
jikafoo
is null.sumber
StringUtils.isBlank
juga mengembalikantrue
hanya spasi putih:sumber
StringUtils.isBlank(foo)
akan melakukan pemeriksaan nol untuk Anda. Jika Anda melakukanfoo.isEmpty()
danfoo
nol, Anda akan meningkatkan NullPointerException.sumber
StringUtils.isBlank () mengembalikan true untuk blank (hanya spasi putih) dan untuk null String juga. Sebenarnya ini memotong urutan Char dan kemudian melakukan pemeriksaan.
StringUtils.isEmpty () mengembalikan true ketika tidak ada charsequence dalam parameter String atau ketika parameter String adalah nol. Perbedaannya adalah isEmpty () mengembalikan false jika parameter String hanya berisi spasi whiltespaces. Ini menganggap ruang putih sebagai keadaan tidak kosong.
sumber
Satu-satunya perbedaan antara isBlank () dan isEmpty () adalah:
sumber
Keduanya memiliki kode yang sama bagaimana isBlank menangani spasi putih yang mungkin Anda maksud adalah isBlankString ini memiliki kode untuk menangani spasi putih.
sumber
Alih-alih menggunakan lib pihak ketiga, gunakan Java 11 isBlank ()
sumber
Saya menjawab ini karena ini adalah hasil teratas di Google untuk "Metode String isBlank ()".
Jika Anda menggunakan Java 11 atau lebih tinggi, Anda bisa menggunakan metode kelas String isBlank () . Metode ini melakukan hal yang sama dengan kelas Apache Commons StringUtils.
Saya telah menulis posting kecil tentang contoh metode ini, baca di sini .
sumber