在Java中,将布尔值转换为int值的最常用方法是什么?
当前回答
boolean b = ....;
int i = -("false".indexOf("" + b));
其他回答
那要视情况而定。通常最简单的方法是最好的,因为它很容易理解:
if (something) {
otherThing = 1;
} else {
otherThing = 0;
}
or
int otherThing = something ? 1 : 0;
但有时使用Enum而不是布尔标志是有用的。让我们假设有同步和异步进程:
Process process = Process.SYNCHRONOUS;
System.out.println(process.getCode());
在Java中,enum可以有额外的属性和方法:
public enum Process {
SYNCHRONOUS (0),
ASYNCHRONOUS (1);
private int code;
private Process (int code) {
this.code = code;
}
public int getCode() {
return code;
}
}
int myInt = myBoolean ? 1 : 0;
^^
PS: true = 1, false = 0
int val = b? 1 : 0;
import org.apache.commons.lang3.BooleanUtils;
boolean x = true;
int y= BooleanUtils.toInteger(x);
如果你使用Apache Commons Lang(我认为很多项目都在使用它),你可以这样使用它:
int myInt = BooleanUtils.toInteger(boolean_expression);
toInteger方法如果boolean_expression为真则返回1,否则返回0
推荐文章
- 如何使用旧版本的Hibernate(~2009)来计算行数?
- Java泛型什么时候需要<?扩展T>而不是<T>,切换有什么缺点吗?
- 如果性能很重要,我应该使用Java的String.format()吗?
- getResourceAsStream返回null
- 如何使用Java中的Scanner类从控制台读取输入?
- 如何添加JTable在JPanel与空布局?
- Statement和PreparedStatement的区别
- 为什么不能在Java中扩展注释?
- 在Java中使用UUID的最重要位的碰撞可能性
- 转换列表的最佳方法:map还是foreach?
- 如何分割逗号分隔的字符串?
- Java字符串—查看字符串是否只包含数字而不包含字母
- Mockito.any()传递带有泛型的接口
- 在IntelliJ 10.5中运行测试时,出现“NoSuchMethodError: org.hamcrest. matcher . descripbemismatch”
- 使用String.split()和多个分隔符