在Java中,将布尔值转换为int值的最常用方法是什么?
当前回答
如果你使用Apache Commons Lang(我认为很多项目都在使用它),你可以这样使用它:
int myInt = BooleanUtils.toInteger(boolean_expression);
toInteger方法如果boolean_expression为真则返回1,否则返回0
其他回答
int myInt = myBoolean ? 1 : 0;
^^
PS: true = 1, false = 0
如果true -> 1和false -> 0映射是你想要的,你可以这样做:
boolean b = true;
int i = b ? 1 : 0; // assigns 1 to i.
如果你想混淆,可以使用这个:
System.out.println( 1 & Boolean.hashCode( true ) >> 1 ); // 1
System.out.println( 1 & Boolean.hashCode( false ) >> 1 ); // 0
import org.apache.commons.lang3.BooleanUtils;
boolean x = true;
int y= BooleanUtils.toInteger(x);
让我们使用boolean .compare(boolean, boolean)。函数的默认行为:如果两个值相等,则返回0,否则返回-1。
public int valueOf(Boolean flag) {
return Boolean.compare(flag, Boolean.TRUE) + 1;
}
解释:我们知道Boolean.compare的默认返回值在不匹配的情况下是-1,所以+1使返回值为0为False, 1为True
推荐文章
- c#和Java中的泛型有什么不同?和模板在c++ ?
- 在Java中,流相对于循环的优势是什么?
- Jersey在未找到InjectionManagerFactory时停止工作
- 在Java流是peek真的只是调试?
- Recyclerview不调用onCreateViewHolder
- 如何舍入一个双到最近的Int在迅速?
- 将JSON字符串转换为HashMap
- web - inf在Java EE web应用程序中用于什么?
- Java 8: Lambda-Streams,过滤方法与异常
- 将JsonNode转换为POJO
- 如何查看IntelliJ中的编译错误列表?
- Java SimpleDateFormat("yyyy-MM-dd' t ' hh:mm:ss' z '")给出的时区为IST
- 杰克逊克服下划线,支持骆驼案
- List、List<?>, List<T>, List<E>, List<Object>
- 在Java中转换字符串到日历对象