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

Javaで文字列に特定の文字が含まれているか確認する方法

Javaでは、文字列の中に指定した文字が含まれているかどうかを、いくつかの方法で簡単に確認できます。本記事では、代表的な2つの方法である indexOf() メソッドと toCharArray() メソッドを使った文字検索の手法を、サンプルコード付きでわかりやすく解説します。

indexOf() メソッドを使う方法

Stringクラスの indexOf() メソッドを使うと、文字列の中から特定の文字を検索できます。このメソッドは、引数として渡した文字が文字列内で最初に出現する位置(インデックス)を int 型で返します。もし指定した文字が文字列中に存在しない場合は、-1 を返します。

したがって、特定の文字が文字列に含まれているかどうかを調べる手順は以下のとおりです。

  • Stringオブジェクトに対して indexOf() メソッドを呼び出し、調べたい文字を引数として渡します。

  • 戻り値が -1 以外であれば、その文字列には指定した文字が含まれています。-1 であれば含まれていないことを意味します。

サンプルコード

import java.util.Scanner;

public class IndexOfExample {
    public static void main(String args[]) {
        Scanner sc = new Scanner(System.in);
        System.out.println("文字列を入力してください:");
        String str = sc.next();
        System.out.println("検索したい文字を入力してください:");
        char ch = sc.next().toCharArray()[0];
        // indexOf() メソッドを呼び出す
        int i = str.indexOf(ch);
        if(i != -1) {
            System.out.println("文字列に指定された文字が含まれています");
        } else {
            System.out.println("文字列に指定された文字は含まれていません");
        }
    }
}

実行結果

文字列を入力してください:
Tutorialspoint
検索したい文字を入力してください:
t
文字列に指定された文字が含まれています

この方法はコードがシンプルで可読性が高いため、単純な文字の存在チェックには最も推奨されるアプローチです。また、戻り値のインデックスを利用すれば「何番目の位置に文字があるか」まで把握できる点も便利です。

toCharArray() メソッドを使う方法

Stringクラスの toCharArray() メソッドは、文字列をchar型の配列に変換して返します。この配列をループで走査しながら各文字を比較することで、目的の文字が含まれているかどうかを判定できます。

具体的な手順は次のとおりです。

  • 文字列を toCharArray() メソッドでchar型の配列に変換します。

  • 拡張for文や通常のfor文で配列の各要素を取り出し、検索対象の文字と比較します。

  • 一致する文字が見つかった時点でフラグを立て、処理を終了すると効率的です。

サンプルコード

import java.util.Scanner;

public class FindingCharacter {
    public static void main(String args[]) {
        Scanner sc = new Scanner(System.in);
        System.out.println("文字列を入力してください:");
        String str = sc.next();
        System.out.println("検索したい文字を入力してください:");
        char ch = sc.next().toCharArray()[0];
        // 文字列をchar型配列に変換
        char charArray[] = str.toCharArray();
        boolean flag = false;
        for(int i = 0; i < charArray.length; i++) {
            if(charArray[i] == ch) {
                flag = true;
                break;
            }
        }
        if(flag) {
            System.out.println("文字列に指定された文字が含まれています");
        } else {
            System.out.println("文字列に指定された文字は含まれていません");
        }
    }
}

実行結果

文字列を入力してください:
tutorialspoint
検索したい文字を入力してください:
T
文字列に指定された文字は含まれていません

上記の例では大文字と小文字が区別されるため、「tutorialspoint」に対して「T」を検索しても一致しません。大文字小文字を区別せずに比較したい場合は、Character.toLowerCase()String.toLowerCase() を使って両者を揃えてから比較するとよいでしょう。

まとめ

  • indexOf() メソッド:1行で存在チェックができ、位置情報も取得できるため、簡潔さを重視する場合に最適です。

  • toCharArray() メソッド:各文字に対して個別の処理を行いたい場合や、複数条件での判定が必要な場合に柔軟に対応できます。

用途に応じてこれらの方法を使い分けることで、Javaにおける文字列操作をより効率的に行えるようになります。

  1. Javaで文字列を文字配列(char配列)に変換する2つの方法を徹底解説

    Javaでは、String型の文字列を文字配列(char[])に変換する方法が主に2つあります。ひとつは各文字を1つずつ配列にコピーする方法、もうひとつはtoCharArray()メソッドを使う方法です。それぞれの手順とサンプルコードを詳しく見ていきましょう。 方法1:charAt()メソッドで各文字をコピーする StringクラスのcharAt()メソッドは、指定した位置にある文字を返します。このメソッドを利用して、文字列の各文字を順番に配列へ格納していきます。 手順 変換対象の文字列を取得します。 文字列と同じ長さの空のchar配列を作成します。 charAt()メソッドを使って、文字列

  2. 【Java入門】文字列の中で最も多く出現する文字を出力する方法

    JavaのStringクラスは文字列を表現するためのクラスで、プログラム内に記述されたすべての文字列リテラルはStringクラスのインスタンスとして扱われます。Stringオブジェクトは定数であり、一度生成するとその値を変更することができない(イミュータブル)という重要な特徴を持っています。 以下のプログラムでは、与えられた文字列の中から最も多く出現する文字(最大出現文字)とその出現回数を出力します。 サンプルコード public class MaxOccuredCharacterTest { public static void main(String[] args) {