如何将字符串对象转换为布尔对象?
当前回答
boolean status=false;
if (variable.equalsIgnoreCase("true")) {
status=true;
}
仅当字符串为'true'(不区分大小写)时才支持。稍后您可以使用状态变量。
其他回答
在2018年1月,最好的方法是使用apache的BooleanUtils.toBoolean。
这将把任何布尔值如字符串转换为布尔值,例如Y, yes, true, N, no, false等。
非常方便!
除了KLE这个优秀的答案,我们还可以做一些更灵活的事情:
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");
(受到zlajo的回答启发……: -))
尝试(取决于你想要的结果类型):
Boolean boolean1 = Boolean.valueOf("true");
boolean boolean2 = Boolean.parseBoolean("true");
优势:
Boolean:它不会创建新的Boolean实例,因此性能更好(并且垃圾收集更少)。它重用任意一个布尔值的两个实例。TRUE或布尔值。false。 布尔型:不需要实例,使用基本类型。
官方文档在Javadoc中。
更新:
也可以使用自动装箱,但它有性能成本。 我建议只在你不得不打石膏的时候使用它,而不是在可以避免打石膏的时候。
如果你的目标只是将这个字符串变量与“false”或“true”字符串进行比较,而不硬编码这两个值,就像我的情况一样,并且你不想使用Boolean.valueOf(),因为它将对它认为是“true”的任何东西返回true,并将对其他所有东西返回false,就像Brandon指出的那样,你可以执行以下操作。
if (someStringVariable.equals(Boolean.TRUE.toString())) {
...
}
或类似的,
if (someStringVariable.equals(Boolean.FALSE.toString())) {
...
}
使用Apache Commons库中的BooleanUtils类:
String[] values= new String[]{"y","Y","n","N","Yes","YES","yes","no","No","NO","true","false","True","False","TRUE","FALSE",null};
for(String booleanStr : values){
System.out.println("Str ="+ booleanStr +": boolean =" +BooleanUtils.toBoolean(booleanStr));
}
结果:
Str =N: boolean =false
Str =Yes: boolean =true
Str =YES: boolean =true
Str =yes: boolean =true
Str =no: boolean =false
Str =No: boolean =false
Str =NO: boolean =false
Str =true: boolean =true
Str =false: boolean =false
Str =True: boolean =true
Str =False: boolean =false
Str =TRUE: boolean =true
Str =FALSE: boolean =false
Str =null: boolean =false
推荐文章
- 如何在java中格式化持续时间?(如格式H:MM:SS)
- urlencoder .encode(字符串)已弃用,我应该使用什么代替?
- javax.transaction.Transactional vs . org.springframework.transaction.annotation.Transactional
- Java 8接口方法中不允许“同步”的原因是什么?
- 如何找到Java堆大小和内存使用(Linux)?
- c#:如何获得一个字符串的第一个字符?
- String类中的什么方法只返回前N个字符?
- 我可以将c#字符串值转换为转义字符串文字吗?
- 使用Enum实现单例(Java)
- RabbitMQ与通道和连接之间的关系
- buildSessionFactory()配置方法在Hibernate中已弃用?
- Spring MVC -如何获得所有的请求参数在一个地图在Spring控制器?
- 在c#中解析字符串为日期时间
- 如何在Java中按两个字段排序?
- 文件之间的差异。路径中的分隔符和斜杠