今天偶然想把string 类型转换成 boolean 类型 ,查了下api文档,发现文档似乎有点不太对经。。。
嗯,就直接发测试代码吧,废话懒得说了。。。
- String s1 = "false";
- String s2 = "true";
- String s3 = "fAlSe";
- String s4 = "TrUe";
- String s5 = "true_a";
以上的string 分别用
- Boolean.getBoolean(s1);
- Boolean.getBoolean(s2)
- Boolean.getBoolean(s3);
- Boolean.getBoolean(s4);
- Boolean.getBoolean(s5);
以上5个的返回的值都为 false
api文档是这样说的:
getBoolean
public static boolean getBoolean(String name)
-
当且仅当以参数命名的系统属性存在,且等于
"true"
字符串时,才返回true
。(从 JavaTM 平台的 1.0.2 版本开始,字符串的测试不再区分大小写。)通过getProperty
方法可访问系统属性,此方法由System
类定义。如果没有以指定名称命名的属性或者指定名称为空或 null,则返回
false
。
但结果我也不知道为什么会这样的咧。。。
嗯,结果都是false,那我们要转换怎么办呢,没事,还有另外一个方法 叫 Boolean.parseBoolean(string s);
- Boolean.parseBoolean(s1);
- Boolean.parseBoolean(s2)
- Boolean.parseBoolean(s3);
- Boolean.parseBoolean(s4);
- Boolean.parseBoolean(s5);
-
api文档是这样写的:
public static boolean parseBoolean(String s)
-
将字符串参数解析为 boolean 值。如果 String 参数不是
null
且在忽略大小写时等于"true"
,则返回的boolean
表示 true 值。示例:
Boolean.parseBoolean("True")
返回true。
示例:Boolean.parseBoolean("yes")
返回 false。
-
将字符串参数解析为 boolean 值。如果 String 参数不是
这次的转换就可以了。。。。结果分别是:false , true , false , true , false
所以,转换时就直接用parseBoolean好了