Java
 Computer >> コンピューター >  >> プログラミング >> Java

【Java】文字列(String)に対してswitch文を使う方法をわかりやすく解説

はじめに

この記事では、Javaにおいて文字列(String)に対してswitch文を実装する方法を詳しく解説します。

switch式は一度だけ評価され、その評価結果が各caseの値と順番に比較されます。一致するcaseが見つかれば、そこに記述された処理が実行されます。なお、文字列とは1文字以上の文字を含み、ダブルクォート(" ")で囲んで表現されるデータ型のことです。

それでは、具体的な例を見ていきましょう。

入力例:

入力文字列:Java

期待される出力:

switch文による判定結果:
コーディングにはJavaを使用します

アルゴリズム

ステップ1 - 処理を開始する
ステップ2 - 文字列型変数 input_string を宣言する
ステップ3 - 変数に値を設定する
ステップ4 - switch文を定義し、入力文字列に応じて対応するメッセージを出力する
ステップ5 - 結果を表示する
ステップ6 - 処理を終了する

例1:mainメソッド内にすべての処理を記述するパターン

まずは、すべての処理を「main」メソッド内にまとめて記述するシンプルな例です。

public class Demo {
   public static void main(String[] args) {
      String input_string = "Java";
      System.out.println("定義された文字列:" + input_string);
      System.out.println("switch文による判定結果:");
      switch (input_string) {
         case "Scala":
            System.out.println("コーディングにはScalaを使用します");
            break;
         case "Python":
            System.out.println("コーディングにはPythonを使用します");
            break;
         case "Java":
            System.out.println("コーディングにはJavaを使用します");
            break;
         default:
            System.out.println("未定義の文字列です");
      }
   }
}

出力結果

定義された文字列:Java
switch文による判定結果:
コーディングにはJavaを使用します

例2:処理を独立したメソッドに分離するパターン(オブジェクト指向)

次に、switchによる判定処理を専用のメソッドとして切り出し、オブジェクト指向プログラミングの考え方に沿って構造化した例を紹介します。

public class Demo {
   static void switch_case(String input_string){
      System.out.println("switch文による判定結果:");
      switch (input_string) {
         case "Scala":
            System.out.println("コーディングにはScalaを使用します");
            break;
         case "Python":
            System.out.println("コーディングにはPythonを使用します");
            break;
         case "Java":
            System.out.println("コーディングにはJavaを使用します");
            break;
         default:
            System.out.println("未定義の文字列です");
      }
   }
   public static void main(String[] args) {
      String input_string = "Java";
      System.out.println("定義された文字列:" + input_string);
      switch_case(input_string);
   }
}

出力結果

定義された文字列:Java
switch文による判定結果:
コーディングにはJavaを使用します

補足:文字列switch文を使う際の注意点

  • 文字列のswitch文はJava 7以降でサポートされています。Java 6以前では使用できないため注意してください。
  • caseラベルとの比較は大文字・小文字が区別されます。「Java」と「java」は別の文字列として扱われます。
  • nullをswitch式に渡すとNullPointerExceptionが発生するため、nullチェックを行ってからswitch文に渡すのが安全です。
  • 各caseの末尾にはbreak文を忘れずに記述しましょう。breakがないと、後続のcaseの処理が連続して実行される「フォールスルー」が発生します。

まとめ

Javaでは、文字列をswitch文の条件式として直接扱うことができます。if-else文を多数並べるよりもコードが読みやすくなり、分岐の意図も明確になります。今回紹介した2つのパターン(mainメソッド直書き型/メソッド分離型)を参考に、用途に応じて使い分けてみてください。

  1. Javaで文字列内の母音をカウントする方法をわかりやすく解説

    Javaでは、拡張forループと条件分岐を組み合わせることで、文字列に含まれる母音(a、e、i、o、u)の数を簡単にカウントできます。この記事では、基本的な実装方法をサンプルコード付きで解説します。 カウントの仕組み まず、カウント用の変数 count を 0 で初期化します。これは、母音の数をこの変数に加算していくためです。 次に、toCharArray() メソッドを使って文字列を1文字ずつ取り出し、Character.toLowerCase() ですべて小文字に変換します。これにより、大文字・小文字を区別せずに母音を判定できるようになります。 for(char ch : myStr.t

  2. Javaで文字列を比較する方法|equals()とequalsIgnoreCase()の使い分けを徹底解説

    Javaで文字列の等価性を比較する際は、Stringクラスが提供するequalsメソッドまたはequalsIgnoreCaseメソッドを使用するのが基本です。この記事では、それぞれのメソッドの使い方に加えて、==演算子で文字列を比較してはいけない理由についても詳しく解説します。 equals()メソッドで文字列を比較する 2つの文字列を比較し、大文字と小文字の違いまで厳密に判定したい場合はequals()メソッドを使用します。 次のコード例では、2つのStringインスタンスが大文字小文字を含むすべての文字において一致しているかどうかを判定しています。 public class Compare