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

Javaで文字列に部分文字列が含まれているか確認する方法|contains()の使い方を解説

はじめに

この記事では、文字列の中に特定の部分文字列が含まれているかどうかを確認する方法を解説します。

まず用語を整理しておきましょう。文字列(String)とは、1つ以上の文字から構成され、ダブルクォート(" ")で囲まれたデータ型のことです。そして、その文字列の一部を切り出したものを部分文字列(substring)と呼びます。

Javaでは、Stringクラスが提供する contains() メソッドを使うことで、部分文字列の有無を簡単に判定できます。このメソッドは、引数に指定した文字列が含まれていれば true、含まれていなければ false を返します。

入力と出力のイメージ

入力の例:

The first substring is defined as: Java
The second substring is defined as: C++

期待される出力:

The substring: Java is a part of the defined string.
The substring: C++ is not a part of the defined string.

アルゴリズム

全体の処理は以下の手順で進めます。

ステップ1 - 処理を開始する
ステップ2 - input_string、sub_string_1、sub_string_2 の3つの文字列を宣言する
ステップ3 - 各変数に値を設定する
ステップ4 - contains() メソッドを使って、文字列に部分文字列が含まれるかを判定する
ステップ5 - 結果を表示する
ステップ6 - 処理を終了する

例1:mainメソッド内にすべての処理を記述する方法

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

public class Demo {
   public static void main(String[] args) {
      String input_string = "Java Programming";
      System.out.println("The input string is defined as: " +input_string);
      String sub_string_1 = "Java";
      System.out.println("The first substring is defined as: " +sub_string_1);
      String sub_string_2 = "C++";
      System.out.println("The second substring is defined as: " +sub_string_2);
      boolean result = input_string.contains(sub_string_1);
      if(result) {
         System.out.println("The substring: " +sub_string_1 + " is a part of the defined string.");
      } else {
         System.out.println("The substring: " +sub_string_1 + " is not a part of the defined string.");
      }
      result = input_string.contains(sub_string_2);
      if(result) {
         System.out.println("The substring: " +sub_string_2 + " is a part of the defined string.");
      } else {
         System.out.println("The substring: " +sub_string_2 + " is not a part of the defined string.");
      }
   }
}

実行結果

The input string is defined as: Java Programming
The first substring is defined as: Java
The second substring is defined as: C++
The substring: Java is a part of the defined string.
The substring: C++ is not a part of the defined string.

例2:オブジェクト指向スタイルでメソッドに分割する方法

次に、判定処理を独立したメソッドに切り出し、オブジェクト指向プログラミングの考え方に沿って実装した例を紹介します。処理をメソッド化することで、コードの再利用性や可読性が向上し、保守もしやすくなります。

public class Demo {
   static void check_substring(String input_string, String sub_string_1, String sub_string_2){
      boolean result = input_string.contains(sub_string_1);
      if(result) {
         System.out.println("The substring: " +sub_string_1 + " is a part of the defined string.");
      } else {
         System.out.println("The substring: " +sub_string_1 + " is not a part of the defined string.");
      }
      result = input_string.contains(sub_string_2);
      if(result) {
         System.out.println("The substring: " +sub_string_2 + " is a part of the defined string.");
      }else {
         System.out.println("The substring: " +sub_string_2 + " is not a part of the defined string.");
      }
   }
   public static void main(String[] args) {
      String input_string = "Java Programming";
      System.out.println("The input string is defined as: " +input_string);
      String sub_string_1 = "Java";
      System.out.println("The first substring is defined as: " +sub_string_1);
      String sub_string_2 = "C++";
      System.out.println("The second substring is defined as: " +sub_string_2);
      check_substring(input_string, sub_string_1, sub_string_2);
   }
}

実行結果

The input string is defined as: Java Programming
The first substring is defined as: Java
The second substring is defined as: C++
The substring: Java is a part of the defined string.
The substring: C++ is not a part of the defined string.

まとめ

Javaで文字列に部分文字列が含まれているかを確認するには、contains() メソッドを使うのが最も手軽です。なお、contains()大文字・小文字を区別する点に注意してください。大文字小文字を無視して比較したい場合は、両方の文字列を toLowerCase() または toUpperCase() で統一してから比較するとよいでしょう。

  1. Javaで回文を判定するプログラムの書き方【数値・文字列の実例付き】

    回文(パリンドローム)とは、逆から読んでも同じになる文字列や数値のことです。たとえば、121、313、525 といった数値や、「aba」「wow」のような文字列が回文に該当します。この記事では、Javaを使って回文を判定する方法を、数値の場合と文字列の場合の2つのパターンに分けて、サンプルコードと実行結果とともにわかりやすく解説します。回文数をチェックする方法数値が回文かどうかを判定するには、元の数値を1桁ずつ取り出して逆順に組み立て直し、元の値と比較します。具体的には、剰余演算(%10)で末尾の桁を取り出し、それを結果変数に10倍しながら加算していくことで反転した数値を作れます。サンプルコー

  2. 【Python】指定した文字列に部分文字列が含まれているか確認するプログラムの作り方

    この記事では、入力された文字列の中に特定の部分文字列が存在するかどうかを判定するPythonプログラムを紹介します。文字列操作の基礎となる重要なテクニックなので、ぜひマスターしておきましょう。 アルゴリズム 処理の手順は以下の通りです。 ユーザーから文字列と部分文字列を入力として受け取り、それぞれ別の変数に格納します。 組み込み関数 find() を使って、部分文字列が文字列内に存在するかどうかを判定します。 最終的な結果を出力します。 プログラムを終了します。 サンプルコード def check(str1, sstr): if (str1.find(sstr) == -1)