Javaでブール値をintに変換する
この投稿では、Javaでブール値をintに変換する方法について説明します。規則は、trueが1、falseが0である必要があります。
1.三項演算子の使用
最も一般的で効率的で最も読みやすい方法は、三項演算子を使用することです。このアプローチは、プリミティブ型のブール値と Boolean
クラス。
1 2 3 |
public static int boolToInt(Boolean b) { return b ? 1 : 0; } |
2.使用する Boolean.compareTo()
方法
使用できます Boolean.compareTo()
ブールインスタンスを別のインスタンスと比較します。このアプローチは、プリミティブ型のブール値では機能しません。
1 2 3 |
public static int boolToInt(Boolean b) { return b.compareTo(false); } |
3.使用する Boolean.compare()
方法
Java7は新しいユーティリティメソッドを導入しました Boolean.compare()
2つのブール値を比較します。これは内部で三項演算子を使用し、プリミティブ型のブール値と Boolean
クラス。
1 2 3 |
public static int boolToInt(Boolean b) { return Boolean.compare(b, false); } |
4. ApacheCommonsLangの使用
ApacheCommonsLangも使用できます BooleanUtils.toInteger()
これは、指定されたブール値に相当する整数を返します。
1 2 3 |
public static int boolToInt(Boolean b) { return BooleanUtils.toInteger(b); } |
5.使用する String.length()
方法
このアプローチは、ブール値の文字列表現の長さの差が1であるという事実を利用しています。
1 2 3 |
public static int boolToInt(Boolean b) { return 5 - b.toString().length(); } |
プリミティブ型のブール値の場合、次のようなことができます。
1 2 3 |
public static int boolToInt(boolean b) { return 5 - (b + "").length(); } |
6.使用する String.indexOf()
方法
別の間接的なアプローチには、 String.indexOf()
、以下に示すように:
1 2 3 |
public static int boolToInt(Boolean b) { return -("false".indexOf(b.toString())); } |
プリミティブ型のブール値の場合、次のようなことができます。
1 2 3 |
public static int boolToInt(boolean b) { return -("false".indexOf(b + "")); } |
7.使用する Boolean.hashCode()
方法
最後に、いくつかの低レベルのビット操作ハックを含めましょう。
1 2 3 |
public static int boolToInt(Boolean b) { return 1 & (Boolean.hashCode(b) >> 1); } |
これで、Javaでブール値をintに変換することができます。
参照: https://stackoverflow.com/questions/3793650/convert-boolean-to-int-in-java