java string类型转换boolean类型

本文对比了使用Boolean.getBoolean与Boolean.parseBoolean方法将String类型转换为Boolean类型的差异。测试表明,对于大小写敏感和非标准布尔字符串,两种方法的表现不同。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

今天偶然想把string 类型转换成 boolean 类型 ,查了下api文档,发现文档似乎有点不太对经。。。

嗯,就直接发测试代码吧,废话懒得说了。。。


[java]  view plain  copy
  1. String s1 = "false";  
  2. String s2 = "true";  
  3. String s3 = "fAlSe";  
  4. String s4 = "TrUe";  
  5. String s5 = "true_a";  

以上的string 分别用

[java]  view plain  copy
  1. Boolean.getBoolean(s1);  
  2. Boolean.getBoolean(s2)  
  3. Boolean.getBoolean(s3);  
  4. Boolean.getBoolean(s4);  
  5. 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); 

 

[java]  view plain  copy
  1. Boolean.parseBoolean(s1);  
  2. Boolean.parseBoolean(s2)  
  3. Boolean.parseBoolean(s3);  
  4. Boolean.parseBoolean(s4);  
  5. Boolean.parseBoolean(s5);  

api文档是这样写的:

public static boolean parseBoolean(String s)
将字符串参数解析为 boolean 值。如果 String 参数不是 null 且在忽略大小写时等于"true",则返回的 boolean 表示 true 值。

示例:Boolean.parseBoolean("True") 返回 true
示例:Boolean.parseBoolean("yes") 返回 false



这次的转换就可以了。。。。结果分别是:false , true , false , true , false

所以,转换时就直接用 parseBoolean 好了

### 如何将Java中的字符串换为布尔值 在Java中,可以使用`Boolean.valueOf(String s)`或`Boolean.parseBoolean(String s)`来实现从字符串到布尔值的换。需要注意的是,这两种方法的行为略有不同。 #### 方法一:`Boolean.valueOf(String s)` 此方法会返回一个`Boolean`对象,并且只有当输入字符串严格等于(忽略大小写) `"true"`时才会返回 `true`,其他情况下均返回 `false`[^1]。 ```java public class StringToBooleanExample { public static void main(String[] args) { String trueStr = "True"; String falseStr = "False"; Boolean result1 = Boolean.valueOf(trueStr); Boolean result2 = Boolean.valueOf(falseStr); System.out.println(result1); // 输出: true System.out.println(result2); // 输出: false } } ``` #### 方法二:`Boolean.parseBoolean(String s)` 该方法返回一个基本数据类型的`boolean`值。同样地,它仅在输入字符串完全匹配(忽略大小写) `"true"`时才返回 `true`,否则返回 `false`[^1]。 ```java public class ParseStringToBooleanExample { public static void main(String[] args) { String trueStr = "true"; String falseStr = "yes"; boolean result1 = Boolean.parseBoolean(trueStr); boolean result2 = Boolean.parseBoolean(falseStr); System.out.println(result1); // 输出: true System.out.println(result2); // 输出: false } } ``` 值得注意的一点是,在实际开发过程中要特别留意传入的参数是否可能为空或者包含意外的内容,因为这可能会引发不可预期的结果。 另外,尝试直接通过类型强制换的方式将`String`成`Boolean`会导致编译错误,这是因为两者之间不存在兼容的关系[^3]。 最后提醒一下,虽然可以通过自定义逻辑扩展支持更多样式的真伪表达识别,但官方API只认可标准形式即"true"(不区分大小写)。 ###
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值