Рубрики
Без рубрики

Преобразование строки Java В логическое значение

Узнайте, как преобразовать строку в логическое значение с помощью Java.

Автор оригинала: baeldung.

1. Обзор

В этом уроке мы рассмотрим различные способы использования класса Java Boolean для | преобразования Строки в boolean .

2. Boolean.parseBoolean()

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

Во-первых, давайте напишем тест, чтобы увидеть, как parseBoolean() преобразует строку со значением true:

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

Конечно, тест проходит.

На самом деле семантика parseBoolean() настолько ясна, что IntelliJ IDEA предупреждает нас, что передача строкового литерала “true” является избыточной.

Другими словами, этот метод отлично подходит для преобразования String в boolean .

3. Boolean.valueOf()

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

Мы видим, что этот метод также успешно преобразует нашу строку :

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

Этот метод фактически использует parseBoolean() для преобразования String в фоновом режиме и просто использует результат для возврата статически определенного экземпляра Boolean .

Поэтому этот метод следует использовать только в том случае, если требуется возвращаемый экземпляр Boolean . Если требуется только примитивный результат, более эффективно придерживаться прямого использования parseBoolean () .

4. Boolean.getBoolean()

Boolean.getBoolean () – это третий метод, который принимает строку и возвращает boolean .

Не глядя на документацию или реализацию этого метода, можно было бы разумно предположить, что этот метод также предназначен для преобразования его аргумента String в логическое значение :

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

Причина неудачи этого теста заключается в том, что аргумент String должен представлять имя системного свойства boolean .

Определив системное свойство:

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() и Ценность() оба преобразуют Строка в логический , важно помнить, что Boolean.getBoolean() не.

Исходный код со всеми примерами в этом руководстве можно найти на Github .