如何将String转换为Booleam?| Java Debug 笔记

本文正在参加「Java主题月 – Java Debug笔记活动」,详情查看 活动链接

原问题地址:stackoverflow.com/questions/1…

Q:

如何将String对象转换为Boolean对象?

A:

你可以试下下面的代码(参数设置取决于您想要的结果类型):

Boolean boolean1 = Boolean.valueOf("true");
boolean boolean2 = Boolean.parseBoolean("true");
复制代码

各自的优点:

  • Boolean:这不会创建布尔值的新实例,因此性能更好(并且垃圾回收更少)。它重用了Boolean.TRUE或Boolean.FALSE的两个实例。
  • boolean:不需要实例,您可以使用原始类型。

可以看看官方文档Javadoc

也可以使用自动装箱,但是会降低性能。

我建议仅在您必须抛弃自己时才使用它,而不是在可以避免的情况下才使用它。

Other

#95

使用 Boolean.valueOf(string)或Boolean.parseBoolean(string)时必须小心。

这样做的原因是,如果String不等于“ true”,则方法将始终返回false(忽略大小写)。

举个例子:

Boolean.valueOf("YES") -> false
复制代码

由于这种行为,我建议添加某种机制以确保应转换为布尔值的字符串遵循指定的格式。

例如:

if (string.equalsIgnoreCase("true") || string.equalsIgnoreCase("false")) {
    Boolean.valueOf(string)
    // do something   
} else {
    // throw some exception
}
复制代码

#22

Boolean b = Boolean.valueOf(string);
复制代码

如果字符串不是null且等于true(忽略大小写),则b的值为true。

#19

除了上面出色的答案外,我还可以提供一些更灵活的方法:

boolean b = string.equalsIgnoreCase("true") || string.equalsIgnoreCase("t") || 
        string.equalsIgnoreCase("yes") || string.equalsIgnoreCase("y") || 
        string.equalsIgnoreCase("sure") || string.equalsIgnoreCase("aye") || 
        string.equalsIgnoreCase("oui") || string.equalsIgnoreCase("vrai");
复制代码
© 版权声明
THE END
喜欢就支持一下吧
点赞0 分享