Как проверить, является ли Строковое значение булевым типом в Java?

Это - Весь текст! позволит Вам использовать любого редактора, которого Вы хотите. Для использования энергии с ним Вам будет нужен маленький сценарий оболочки для открытия его в терминале:

#!/bin/sh
exec xterm -e /usr/bin/vim "$@"

, Если у Вас есть GVim, Вам не будут нужны оболочка, сценарий, очевидно.

38
задан Hubert Kario 6 February 2012 в 00:50
поделиться

9 ответов

  • parseBoolean (String) возвращает true, если String (без учета регистра) "true", в противном случае false
  • valueOf (String) ditto, возвращает канонические логические объекты
  • getBoolean ( String) - отвлекающий маневр; он извлекает свойство System данного имени и сравнивает его с "true"

. Не существует метода для проверки того, кодирует ли String логическое значение; для всех практических эффектов любая не «истинная» -строка является «ложной».

53
ответ дан 27 November 2019 в 03:03
поделиться

На самом деле, проверка на логическое значение тип в String (который является типом) невозможен. В основном вы спрашиваете, как выполнить «сравнение строк».

Как и другие заявили. Вам необходимо определить, когда вы хотите вернуть «истина» или «ложь» (при каких условиях). Вы хотите, чтобы он был чувствителен к регистру? Что, если значение равно null?

Я думаю, что Boolean.valueOf () - ваш друг, javadoc говорит:

Возвращает логическое значение, значение которого представлено указанной строкой. Возвращаемое логическое значение представляет значение true, если строковый аргумент не равен нулю и равен, без учета регистра, строке "true".

Пример: Boolean.valueOf ("True") возвращает истину.
Пример: Boolean.valueOf ("yes") возвращает false.

4
ответ дан 27 November 2019 в 03:03
поделиться

Функции библиотеки CRT ведут себя по-разному при отладке и выпуске (/ MD vs /MDd).

Например, отладочные версии часто предварительно заполняют буферы, которые вы передаете до указанной длины, чтобы проверить свое утверждение . Примеры включают strcpy_s , StringCchCopy и т. Д. Даже если строки оканчиваются раньше, ваш szDest лучше иметь длину n байтов!

out int i) , которые проверяют, можно ли проанализировать содержимое, а затем возвращают результат анализа.

int i;
if (Int32.TryParse("Hello", out i))
  // Hello is an int and its value is in i
else
  // Hello is not an int

Тесты показывают, что они намного быстрее, чем следующие:

int i;
try
{
   i = Int32.Parse("Hello");
   // Hello is an int and its value is in i
}
catch
{
   // Hello is not an int
}

Может быть, в Java есть похожие методы? Я давно не пользовался Java ...

4
ответ дан 27 November 2019 в 03:03
поделиться
if ("true".equals(value) || "false".equals(value)) {
  // do something
} else {
  // do something else
}
5
ответ дан 27 November 2019 в 03:03
поделиться
return "true".equals(value) || "false".equals(value);
37
ответ дан 27 November 2019 в 03:03
поделиться

Вы также должны принять во внимание регистр символов ...

Вместо:

return value.equals("false") || value.equals("true");

Сделайте следующее:

return value.equalsIgnoreCase("false") || value.equalsIgnoreCase("true");
0
ответ дан 27 November 2019 в 03:03
поделиться
return value.equals("false") || value.equals("true");
0
ответ дан 27 November 2019 в 03:03
поделиться

Я предлагаю вам взглянуть на документацию Java для этих методов. Похоже, что вы их неправильно используете. Эти методы не сообщают вам, является ли строка допустимым логическим значением, но вместо этого они возвращают логическое значение, имеющее значение true или false, в зависимости от переданной вами строки, «true» или «false».

http: //www.j2ee.me/javase/6/docs/api/java/lang/Boolean.html

0
ответ дан 27 November 2019 в 03:03
поделиться

Да, но разве вы не разобрали "ложь"? Если вы проанализируете "true", они вернут true.

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

2
ответ дан 27 November 2019 в 03:03
поделиться
Другие вопросы по тегам:

Похожие вопросы: