Преобразуване на Java низ в булева

1. Общ преглед

В този урок ще изследваме различните начини, по които можем да използваме булевия клас на Java, за да преобразуваме String в булев .

2. Boolean.parseBoolean ()

Boolean.parseBoolean () ни позволява да преминем в String и да получим примитивен boolean .

Първо, нека напишем тест, за да видим как parseBoolean () преобразува String със стойността true:

assertThat(Boolean.parseBoolean("true")).isTrue();

Разбира се, тестът преминава.

Всъщност семантиката на parseBoolean () е толкова ясна, че IntelliJ IDEA ни предупреждава, че предаването на низовия литерал „true“ е излишно.

С други думи, този метод е отличен за превръщане на String в булева стойност .

3. Boolean.valueOf ()

Boolean.valueOf () също ни позволява да преминем в низ , но този метод връща екземпляр на булев клас вместо примитивен булев .

Можем да видим, че този метод също успява да преобразува нашия String:

assertThat(Boolean.valueOf("true")).isTrue();

Този метод всъщност използва parseBoolean (), за да направи преобразуването на String във фонов режим и просто използва резултата, за да върне статично дефиниран булев екземпляр.

Следователно този метод трябва да се използва само ако е необходим върнатият булев екземпляр. Ако е необходим само примитивен резултат, по-ефективно е да се придържате директно към използването на parseBoolean () .

4. Boolean.getBoolean ()

Boolean.getBoolean () е трети метод, който приема String и връща boolean .

Без да разглеждаме документацията или изпълнението на този метод, може разумно да предположим, че този метод е и за преобразуване на неговия аргумент String в булева стойност:

assertThat(Boolean.getBoolean("true")).isTrue(); // this test fails!

Причината, поради която този тест е неуспешен, е, че аргументът String трябва да представлява името на логическо системно свойство.

Чрез дефиниране на системното свойство:

System.setProperty("CODING_IS_FUN", "true"); assertThat(Boolean.getBoolean("CODING_IS_FUN")).isTrue();

Накрая тестът преминава. Проверката на изпълнението на този метод разкрива, че и той използва метода parseBoolean () , за да направи своето преобразуване на String .

Имайте предвид, че getBoolean () е буквално пряк път за parseBoolean (System.getProperty (“true”)), което означава, че не бива да се подвеждаме от името.

Следователно, единственият начин Boolean.getBoolean (“true”); някога ще върне true е, ако съществува системно свойство, наречено „true“ и стойността му се анализира в true .

4. Заключение

В този кратък урок видяхме основните разлики между Boolean.parseBoolean () , Boolean.valueOf () и Boolean.getBoolean () .

Докато parseBoolean () и valueOf () , така преобразуване на низ в булев , че е важно да се помни, че Boolean.getBoolean () не го прави.

Изходният код с всички примери в този урок може да бъде намерен в Github.