Java で Enum を列挙型に変換する
Java の enum は、定数のセットを保持する特殊なデータ型またはクラスです。enum にもコンストラクタやメソッドを追加することができます。Java で列挙型を作成するには、キーワード enum
を使い、クラスと同じように名前を付けます。この記事では、Java で列挙型を文字列に変換する方法を見ていきましょう。
Java で name()
を使って Enum 型を文字列に変換する
最初の例では、Enum
クラスの name()
を用いて、列挙型定数の正確な名前を文字列として返します。以下ではクラスの内部で列挙型を作成しましたが、Enum 型はクラスの外部でも内部でも作成することができます。ここでは、方向の名前を含む列挙型定数を Directions
と名付けた。
定数は name()
メソッドを使って取得することができます。Directions.WEST.name()
は WEST
を文字列として返し、それを文字列変数 getWestInString
に格納し、出力に出力します。
public class EnumToString {
enum Directions { NORTH, SOUTH, EAST, WEST }
public static void main(String[] args) {
String getWestInString = Directions.WEST.name();
System.out.println(getWestInString);
}
}
出力:
WEST
Java の toString()
を用いた列挙型から文字列への変換
name()
と同様に toString()
メソッドもありますが、重要な目的で列挙型定数を使用する場合は name()
の方が同じ定数を返すので好ましいですが、toString()
は列挙型の中でオーバーライドできるので、toString()
の方が好ましいです。これは、次の例で説明するように、toString()
を使用して文字列として返されるものを変更できることを意味します。
この例では、文字列に変換する必要のある定数に対して toString()
メソッドを使用します。
public class EnumToString {
enum Currencies { USD, YEN, EUR, INR }
public static void main(String[] args) {
String getCurrency = Currencies.USD.toString();
System.out.println(getCurrency);
}
}
出力:
USD
メソッドをオーバーライドして、列挙型定数で文字列として返したいものを変更できることは上で説明しました。以下の例では、引数に文字列を渡して enum コンストラクタを呼び出す定数として 4つの通貨を用意しています。
定数が toString()
メソッドを見るたびに、文字列変数 getCurrencyName
に文字列名を渡します。ここで、列挙型の中の toString()
メソッドをオーバーライドして getCurrencyName
を文字列で返す必要があります。
main()
メソッドでは toString()
を使用して INR
定数を文字列として取得しています。出力を見ると、変更された文字列が出力されていることがわかります。また、Enum.values()
を使用すると、列挙型定数の配列を返し、すべての定数をループして文字列として出力することができます。
public class EnumToString {
enum Currencies {
USD("USD"),
YEN("YEN"),
EUR("EUR"),
INR("INR");
private final String getCurrencyName;
Currencies(String currencyName) {
getCurrencyName = currencyName;
}
@Override
public String toString() {
return "Currency: " + getCurrencyName;
}
}
public static void main(String[] args) {
String getCurrency = Currencies.INR.toString();
System.out.println("Your " + getCurrency);
Currencies[] allCurrencies = Currencies.values();
for (Currencies currencies : allCurrencies) {
System.out.println("All " + currencies);
}
}
}
出力:
Your Currency: INR
All Currency: USD
All Currency: YEN
All Currency: EUR
All Currency: INR
Rupam Saini is an android developer, who also works sometimes as a web developer., He likes to read books and write about various things.
LinkedIn関連記事 - Java String
- Java で 16 進文字列のバイト配列を変換する方法
- Java で文字列から部分文字列を削除する方法
- Java で文字列から文字列配列への変換を実行する方法
- Java 文字列をバイトに変換する方法
- Java でランダムな文字列を生成する
- Java のスワップメソッド