在Java中解析“true”/“false”

时间:2011-07-08 18:33:16

标签: java parsing text-processing

什么是正确解析布尔字符串的实用方法?我的意思是

"true" => true
"false" => false
"foo" => error

java.lang.Boolean中的解析方法很狡猾 - 它们不区分“false”和“foo”。 Java库(或Guava,或Commons Lang)中的其他任何东西都能正确地完成它吗?

是的,它只是几行,我只是不写任何行,我不应该这样做。 : - )

4 个答案:

答案 0 :(得分:6)

老实说,这个问题太荒谬了。是的,有内置方法(布尔工具API Apache Fan提到)。但是你会以牺牲A)生产力(停止浪费你的时间,编写三行代码)和B)可读性为代价,以一种奇特的方式做某事。什么更容易阅读:

if( "true".equals(myString) )

if( BooleanUtils.toBoolean(myString, "true", "false") )

我每次都去第一个。更好的是,使用IgnoreCase选项进行字符串比较。 toBoolean区分大小写,因此“True”实际上会引发异常。真棒!这真的很有用!

答案 1 :(得分:5)

if ( "true".equalsIgnoreCase(yourString) )
      return true;
else if ( "false".equalsIgnoreCase(yourString) )
      return false;
else
      throw new Exception();

没有一个。

答案 2 :(得分:3)

查看布尔实用工具表格apache commons:

Boolean Utils API

  

将String转换为Boolean   如果不匹配则抛出异常   找到。

     如果没有匹配,则返回

     

BooleanUtils.toBoolean( “真”,   “true”,“false”)= true
  BooleanUtils.toBoolean( “假”,   “true”,“false”)= false

答案 3 :(得分:0)

这很简单:

编辑:或者我错过了这一点......

boolean isTrue (String s) {
  return theString.toLowerCase().equals("true");
}