見出し画像

Java:文字列に特定の文字(列)が含まれているか

※自分用学習メモです

contains メソッドは、JavaのStringクラスに属しており、指定された文字列(部分文字列)が元の文字列に含まれているかどうかをチェックするために使います。このメソッドは、部分文字列が含まれていれば true を返し、含まれていなければ false を返します。

contains メソッドの構文

boolean contains(CharSequence s)
  • パラメータ: CharSequence は調べたい部分文字列。

  • 戻り値: 部分文字列が元の文字列に含まれている場合は true、含まれていない場合は false。


例: contains メソッドの使い方

public class Main {
    public static void main(String[] args) {
        String str = "Hello, world!";
        
        // 部分文字列 "world" が含まれているかチェック
        if (str.contains("world")) {
            System.out.println("文字列に 'world' が含まれています。");
        } else {
            System.out.println("文字列に 'world' は含まれていません。");
        }

        // 部分文字列 "Java" が含まれているかチェック
        if (str.contains("Java")) {
            System.out.println("文字列に 'Java' が含まれています。");
        } else {
            System.out.println("文字列に 'Java' は含まれていません。");
        }
    }
}

出力:

文字列に 'world' が含まれています。
文字列に 'Java' は含まれていません。。

解説:

  • "Hello, world!" という文字列に対して、contains("world") として部分文字列 "world" が含まれているかをチェックしています。結果は true ですので、対応するメッセージが出力されます。

  • 次に、contains("Java") で "Java" という部分文字列が含まれているかを確認しています。含まれていないため false が返され、対応するメッセージが出力されます。


応用例: ユーザーからの入力に含まれる単語を調べる

import java.util.Scanner;

public class Main {
    public static void main(String[] args) {
        Scanner scanner = new Scanner(System.in);
        
        System.out.println("文章を入力してください:");
        String input = scanner.nextLine();
        
        System.out.println("調べたい単語を入力してください:");
        String keyword = scanner.nextLine();
        
        // 部分文字列が含まれているかをチェック
        if (input.contains(keyword)) {
            System.out.println("入力された文章に '" + keyword + "' が含まれています。");
        } else {
            System.out.println("入力された文章に '" + keyword + "' は含まれていません。");
        }

        scanner.close();
    }
}

実行例:

文章を入力してください:
Java is a powerful programming language.
調べたい単語を入力してください:
Java
入力された文章に 'Java' が含まれています。

注意点:

  • contains メソッドは大文字と小文字を区別します。たとえば、"Hello" と "hello" は別の文字列として扱われます。

  • contains メソッドは、部分文字列が空 ("") の場合には常に true を返します。


大文字・小文字を無視してチェックする例

もし大文字・小文字を区別せずに部分文字列が含まれているかをチェックしたい場合は、toLowerCase() または toUpperCase() を使って文字列全体を変換する方法があります。

public class Main {
    public static void main(String[] args) {
        String str = "Hello, World!";
        
        // 大文字小文字を無視して "world" をチェック
        if (str.toLowerCase().contains("world")) {
            System.out.println("大文字小文字を無視して 'world' が含まれています。");
        } else {
            System.out.println("大文字小文字を無視して 'world' は含まれていません。");
        }
    }
}

出力:

大文字小文字を無視して 'world' が含まれています。

まとめ:

  • contains は文字列内に部分文字列が含まれているかを確認するために使われます。

  • 大文字小文字は区別されますが、toLowerCase() や toUpperCase() を使えば無視することも可能です。

この記事が気に入ったらサポートをしてみませんか?