Iai*_*ain 1 java parsing text-processing
什么是正确解析布尔字符串的实用方法?我的意思是
"true" => true
"false" => false
"foo" => error
Run Code Online (Sandbox Code Playgroud)
java.lang.Boolean中的解析方法很狡猾 - 它们不区分"false"和"foo".Java库(或Guava,或Commons Lang)中的其他任何东西都能正确完成吗?
是的它只是几行,我只是不写任何我不应该的行.:-)
老实说,这个问题很荒谬.是的,有内置方法(布尔工具API Apache Fan提到).但是你会以牺牲A)生产力(停止浪费你的时间,编写三行代码)和B)可读性为代价,以一种奇特的方式做某事.什么更容易阅读:
if( "true".equals(myString) )
Run Code Online (Sandbox Code Playgroud)
要么
if( BooleanUtils.toBoolean(myString, "true", "false") )
Run Code Online (Sandbox Code Playgroud)
我每次都去第一个.更好的是,使用IgnoreCase选项进行字符串比较.toBoolean区分大小写,因此"True"实际上会引发异常.真棒!那真的很有用!
查看 Boolean Utils 表单 apache commons :
将字符串转换为布尔值,如果找不到匹配项则抛出异常。
如果没有匹配,则返回 null。
BooleanUtils.toBoolean("true", "true", "false") = true
BooleanUtils.toBoolean("false", "true", "false") = false
if ( "true".equalsIgnoreCase(yourString) )
return true;
else if ( "false".equalsIgnoreCase(yourString) )
return false;
else
throw new Exception();
Run Code Online (Sandbox Code Playgroud)
没有一个.