Boolean: ini tidak membuat instance baru Boolean, jadi kinerjanya lebih baik (dan lebih sedikit pengumpulan sampah). Ini menggunakan kembali dua contoh dari salah satu Boolean.TRUEatau Boolean.FALSE.
boolean: tidak diperlukan instance, Anda menggunakan tipe primitif.
Autoboxing juga dapat digunakan, tetapi memiliki biaya kinerja.
Saya sarankan untuk menggunakannya hanya ketika Anda harus melemparkan diri Anda sendiri, bukan ketika para pemain dihindarkan.
tidak akan menugaskan Boolean.valueOf ke boolaen2 menjadi auto-unboxed? Saya tidak melihat perbedaannya dengan parseBoolean di sini.
Alex Feinman
9
Masalah terbesar adalah bahwa Boolean tidak akan pengecualian ketika melihat sesuatu yang seharusnya tidak diterima. Ini akan mengembalikan nilai benar untuk apa pun yang dianggapnya "benar" dan akan mengembalikan nilai false untuk yang lainnya . Jika Anda mencoba menerapkan pencocokan string ke nilai boolean yang sesuai, Anda harus menambahkan logika tambahan untuk menangkap kasus ilegal secara manual.
Brandon Belvin
bagaimana jika saya menggunakanboolean boolean2 = Boolean.valueOf("true");
vipin8169
1
jika objek String adalah null maka Boolean.valueOf (String) akan mengembalikan false. Tapi Boolean dapat menyimpan nilai null juga. Dapatkah Anda memberikan bantuan untuk hal ini.
amit kate
90
Anda harus berhati-hati saat menggunakan Boolean.valueOf (string) atau Boolean.parseBoolean (string) . Alasan untuk ini adalah bahwa metode akan selalu mengembalikan false jika String tidak sama dengan "true" (case diabaikan).
Sebagai contoh:
Boolean.valueOf("YES")->false
Karena perilaku itu, saya akan merekomendasikan untuk menambahkan beberapa mekanisme untuk memastikan bahwa string yang harus diterjemahkan ke Boolean mengikuti format yang ditentukan.
Misalnya:
if(string.equalsIgnoreCase("true")|| string.equalsIgnoreCase("false")){Boolean.valueOf(string)// do something }else{// throw some exception}
Ini adalah contoh terbaik yang pernah saya lihat dan apa yang seharusnya diimplementasikan dalam tipe Boolean untuk memulai. Melempar pengecualian untuk nilai Boolean yang tidak valid penting untuk banyak aplikasi.
Brandon Belvin
2
Tidak, itu tidak sepenuhnya benar. di sini adalah implementasi yang mendasari parseBoolean public static boolean parseBoolean (String s) {return ((s! = null) && s.equalsIgnoreCase ("true")); }
electricalbah
Heh ... Jika Anda perlu menulis kode seperti itu, maka Anda tidak perlu menelepon Boolean.valueOf. Alih-alih, Anda dapat merestrukturisasi pernyataan if ini sehingga ia akan melakukan apa yang Anda inginkan ;-)
22
Boolean b =Boolean.valueOf(string);
Nilai btrue jika string bukan nol dan sama dengan true(mengabaikan kasus).
publicstaticboolean stringToBool(String s){
s = s.toLowerCase();Set<String> trueSet =newHashSet<String>(Arrays.asList("1","true","yes"));Set<String> falseSet =newHashSet<String>(Arrays.asList("0","false","no"));if(trueSet.contains(s))returntrue;if(falseSet.contains(s))returnfalse;thrownewIllegalArgumentException(s +" is not a boolean.");}
Untuk mendapatkan nilai boolean dari sebuah String, coba ini:
publicboolean toBoolean(String s){try{returnBoolean.parseBoolean(s);// Successfully converted String to boolean}catch(Exception e){returnnull;// There was some error, so return null.}}
Jika ada kesalahan, itu akan mengembalikan nol. Contoh:
Kami membuat pustaka soyuz-to untuk menyederhanakan masalah ini (konversi X ke Y). Itu hanya seperangkat jawaban SO untuk pertanyaan serupa. Ini mungkin aneh menggunakan perpustakaan untuk masalah yang begitu sederhana, tetapi sangat membantu dalam banyak kasus serupa.
Mengurai argumen string sebagai boolean. Boolean yang dikembalikan mewakili nilai true jika argumen string tidak nulldan sama, mengabaikan case, ke string " true".
Parameter:
s - String yang berisi representasi boolean untuk diuraikan
Pengembalian: boolean diwakili oleh argumen string
Meskipun teks pertanyaannya tidak eksplisit, ini adalah pertanyaan tentang Java. Setidaknya itu ditandai seperti itu. Jawaban ini dapat membingungkan orang.
paulo.albuquerque
-3
Anda dapat langsung menetapkan nilai boolean yang setara dengan string apa pun oleh kelas Sistem dan mengaksesnya di mana saja ..
Jawaban:
Coba (tergantung pada jenis hasil apa yang Anda inginkan):
Keuntungan:
Boolean.TRUE
atauBoolean.FALSE
.Dokumentasi resmi ada di Javadoc .
DIPERBARUI:
Autoboxing juga dapat digunakan, tetapi memiliki biaya kinerja.
Saya sarankan untuk menggunakannya hanya ketika Anda harus melemparkan diri Anda sendiri, bukan ketika para pemain dihindarkan.
sumber
boolean boolean2 = Boolean.valueOf("true");
Anda harus berhati-hati saat menggunakan Boolean.valueOf (string) atau Boolean.parseBoolean (string) . Alasan untuk ini adalah bahwa metode akan selalu mengembalikan false jika String tidak sama dengan "true" (case diabaikan).
Sebagai contoh:
Karena perilaku itu, saya akan merekomendasikan untuk menambahkan beberapa mekanisme untuk memastikan bahwa string yang harus diterjemahkan ke Boolean mengikuti format yang ditentukan.
Misalnya:
sumber
Nilai
b
true jika string bukan nol dan sama dengantrue
(mengabaikan kasus).sumber
Selain jawaban yang sangat baik dari KLE, kami juga dapat membuat sesuatu yang lebih fleksibel:
(terinspirasi oleh jawaban zlajo ... :-))
sumber
sumber
Nah, seperti sekarang pada Januari, 2018, cara terbaik untuk ini adalah dengan menggunakan apache
BooleanUtils.toBoolean
.Ini akan mengonversi string boolean seperti apa pun menjadi boolean, misalnya Y, ya, benar, N, tidak, salah, dll.
Sangat berguna!
sumber
Cara saya untuk mengubah string menjadi boolean.
sumber
Hasil:
sumber
Beginilah cara saya melakukannya:
"1##true".contains( string )
Untuk kasus saya kebanyakan 1 atau benar. Saya menggunakan hash sebagai pembagi.
sumber
Untuk mendapatkan nilai boolean dari sebuah String, coba ini:
Jika ada kesalahan, itu akan mengembalikan nol. Contoh:
sumber
parseBoolean(String s)
tidak melempar pengecualian, menurut Javadoc.Mengapa tidak menggunakan ekspresi reguler?
sumber
Kami membuat pustaka soyuz-to untuk menyederhanakan masalah ini (konversi X ke Y). Itu hanya seperangkat jawaban SO untuk pertanyaan serupa. Ini mungkin aneh menggunakan perpustakaan untuk masalah yang begitu sederhana, tetapi sangat membantu dalam banyak kasus serupa.
Silakan periksa - sangat sederhana dan memiliki banyak fitur berguna lainnya
sumber
Mengunjungi http://msdn.microsoft.com/en-us/library/system.boolean.parse.aspx
Ini akan memberi Anda gambaran tentang apa yang harus dilakukan.
Ini yang saya dapatkan dari dokumentasi Java :
sumber
Anda dapat langsung menetapkan nilai boolean yang setara dengan string apa pun oleh kelas Sistem dan mengaksesnya di mana saja ..
sumber