文字列値から列挙型(Enum)を検索するJavaプログラムの書き方
この記事では、文字列値をキーにして列挙型(enum)を検索する方法について解説します。列挙型とは、定数(final変数のように変更不可の値)のグループを表す特殊な「クラス」のことです。
それでは、具体的な動作例を見ていきましょう。
入力例:
検索対象の文字列: Java
期待される出力:
結果: JAVA
処理の流れ(アルゴリズム)
ステップ1 - 処理を開始する ステップ2 - 文字列 input_string と、Languages型のオブジェクト result を宣言する ステップ3 - 値を定義する ステップ4 - valueOf() メソッドを使って、列挙型から該当する文字列を取得する ステップ5 - 結果を表示する ステップ6 - 処理を終了する
例1:valueOf() メソッドを使う方法
ここでは、valueOf() メソッドを使用して列挙型の値を出力します。入力された文字列を toUpperCase() で大文字に変換してから検索している点がポイントです。
public class Demo {
public enum Languages {
JAVA, SCALA, PYTHON, MYSQL
}
public static void main(String[] args) {
String input_string = "Java";
System.out.println("検索対象の文字列: " + input_string);
Languages result = Languages.valueOf(input_string.toUpperCase());
System.out.println("\n結果は次の通りです: ");
System.out.println(result);
}
}出力
検索対象の文字列: Java 結果は次の通りです: JAVA
例2:name() メソッドを使う方法
次に、name() メソッドを使って列挙型の各定数名を取得し、表示する例を紹介します。name() メソッドは、列挙型定数に宣言されている通りの名前を文字列として返します。
enum Languages {
Java,
Scala,
Python,
Mysql;
}
class Demo {
public static void main(String[] args) {
System.out.println("ENUMの値一覧: ");
System.out.println(Languages.Java.name());
System.out.println(Languages.Scala.name());
System.out.println(Languages.Python.name());
System.out.println(Languages.Mysql.name());
}
}出力
ENUMの値一覧: Java Scala Python Mysql
まとめ
文字列から列挙型を取得する場合は valueOf() メソッドが便利です。ただし、存在しない文字列を指定すると IllegalArgumentException がスローされるため、事前に大文字・小文字を揃えるか、try-catchで例外処理を行うのが安全です。一方、列挙型の定数名を文字列として取り出したい場合には name() メソッドを使用します。用途に応じて使い分けることで、より堅牢なJavaプログラムを書くことができます。
-
【Java】正規表現で括弧()を含む文字列に一致させる方法とサンプルコード
Javaで文字列の中に括弧「(」や「)」が含まれているかどうかを判定したい場合、正規表現を使うと簡単に実装できます。この記事では、括弧に一致する正規表現の書き方と、実際に動作するサンプルコードを2つのパターンで紹介します。括弧に一致する正規表現以下の正規表現は、括弧を含む文字列を受け入れます。^.*[\\(\\)].*$;このパターンの各要素は次のような意味を持っています。^ … 文字列(行)の先頭に一致します。.* … 0個以上の任意の文字に一致します。[\\(\\)] … 括弧「(」または「)」に一致します。正規表現では括弧は特殊文字のため、バックスラッシュでエスケープする必要があります。
-
Javaで文字列内の母音をカウントする方法をわかりやすく解説
Javaでは、拡張forループと条件分岐を組み合わせることで、文字列に含まれる母音(a、e、i、o、u)の数を簡単にカウントできます。この記事では、基本的な実装方法をサンプルコード付きで解説します。 カウントの仕組み まず、カウント用の変数 count を 0 で初期化します。これは、母音の数をこの変数に加算していくためです。 次に、toCharArray() メソッドを使って文字列を1文字ずつ取り出し、Character.toLowerCase() ですべて小文字に変換します。これにより、大文字・小文字を区別せずに母音を判定できるようになります。 for(char ch : myStr.t