Javaでブール値をintに変換する
1. 概要
このチュートリアルでは、boolean値をint値に変換する方法を学習します。 最初に、Javaがこれら2つのプリミティブデータ型をどのように処理するかを見ていきます。 次に、ブール値を整数に変換する複数の方法を検討します。
2. データ型
Javaでは、整数はintプリミティブデータ型または整数ラッパークラスで表すことができます。 プリミティブデータ型は、 Two’sComplementエンコード方式で表される32ビットの符号付き整数です。 Integerクラスは、符号なし整数演算を実行したり、整数(プリミティブ)値をGenericsで動作するオブジェクトとして処理したりできるラッパーとして機能します。
一方、ブール値はメモリ内で特定のサイズを持ちませんが、デフォルトではオペレーティングシステムと Java仮想マシン(JVM)になります。 同様に、Javaのすべてのプリミティブデータ型と同様に、 boolean には、ブール値をオブジェクトのように動作させるブールラッパークラスがあります。
両方のデータ型(booleanおよびint)のプリミティブ値とラッパークラスを利用して、データ変換を実行できます。 trueおよびfalseブール値がそれぞれ1および0を表すと仮定すると、変換を行うための複数のアプローチがあります。
3. プリミティブbooleanからint
プリミティブを変換するには ブール値 価値 に int、式の条件を評価して、返したい整数を決定します。
public int booleanPrimitiveToInt(boolean foo) {
int bar = 0;
if (foo) {
bar = 1;
}
return bar;
}
三項演算子を使用すると、この関数を簡略化できます。
public int booleanPrimitiveToIntTernary(boolean foo) {
return (foo) ? 1 : 0;
}
このアプローチでは、プリミティブデータ型( booleanおよびint)を使用して変換を行います。 その結果、ブール式が次の場合に1が得られます。
4. ラッパークラス
ブールラッパークラスを使用して、変換を行うためのいくつかのアプローチがあります。
- ブールクラスの静的メソッドを活用できます。
- ブールオブジェクトから直接メソッドを呼び出すことができます。
4.1. 静的メソッド
ブールクラスには、次のように使用できるcompareメソッドがあります。
public static int booleanObjectToInt(boolean foo) {
return Boolean.compare(foo, false);
}
静的compareメソッドが0を返すことを思い出してください。両方の引数の値が同じ場合。 言い換えれば、 foo がfalseの場合、比較の結果は0になります。 それ以外の場合、最初の引数が true で、2番目の引数がfalseの場合、関数は1を返します。
同様に、同じ静的メソッドを使用して、2番目の引数をtrueに変更できます。
public static int booleanObjectToIntInverse(boolean foo) {
return Boolean.compare(foo, true) + 1;
}
今回は、 foo がtrueの場合、 compare メソッドは同じ値の2つの引数を評価し、結果として0になります。 ただし、結果に1を追加すると、真のブール変数から期待される整数値が返されます。
4.2. ブールクラスオブジェクト
ブールクラスオブジェクトには、compareToなどの関数があります。これらの関数を使用できます。
public static int booleanObjectMethodToInt(Boolean foo) {
return foo.compareTo(false);
}
メソッドbooleanObjectMethodToIntを使用すると、静的メソッドで行ったのと同じ方法でブール値を整数に変換できます。 同様に、引数を true に変更し、結果に 1 を追加することで、逆バージョンを適用できます。
5. Apache Commons
Apache Commons は、BooleanUtilsなどのユーティリティクラスを提供するJava用の人気のあるオープンソースライブラリです。 次のように、ライブラリをMavenの依存関係として追加できます。
<dependency>
<groupId>org.apache.commons</groupId>
<artifactId>commons-lang3</artifactId>
<version>3.12.0</version>
</dependency>
ライブラリがpom.xmlファイルに含まれると、BooleanUtilsクラスを使用してブール値を整数に変換できます。
public static int booleanUtilsToInt(Boolean foo) {
return BooleanUtils.toInteger(foo);
}
サンプルメソッドbooleanPrimitiveToIntTernaryのように、内部的に、toIntegerメソッドは同じ三項演算子を実行して変換を行います。
6. 結論
このチュートリアルでは、ブール値を整数値に変換する方法を学習しました。 trueが1に変換され、falseが0に変換されると仮定して、この変換を実現するためにさまざまな実装を検討しました。
いつものように、この記事の完全なコードサンプルは、GitHubのにあります。