Javaの文字列検索プログラム「SearchString」を作成したいですが、特定の文字列が含まれる行だけを抜き出して表示する方法がわかりません。どうすればいいですか?

SearchStringプログラムを作成する上で、特定の文字列が含まれる行だけを抜き出して表示する方法はいくつかあります。以下にいくつかのアプローチを紹介します。

1. BufferedReaderとindexOfメソッドを使用する方法:
まず、BufferedReaderクラスを使用してファイルを一行ずつ読み込みます。その後、indexOfメソッドを使用して特定の文字列が行に含まれるかどうかをチェックします。もし含まれていれば、その行を出力します。

“`java
import java.io.BufferedReader;
import java.io.FileReader;
import java.io.IOException;

public class SearchString {

public static void main(String[] args) {
String filePath = “input.txt”; //検索するファイルのパス
String searchString = “特定の文字列”; //検索する文字列

try (BufferedReader br = new BufferedReader(new FileReader(filePath))) {
String line;
while ((line = br.readLine()) != null) {
if (line.indexOf(searchString) != -1) {
System.out.println(line);
}
}
} catch (IOException e) {
e.printStackTrace();
}
}
}
“`

2. Stringクラスのcontainsメソッドを使用する方法:
上記の方法と同じく、ファイルを一行ずつ読み込みますが、こちらではStringクラスのcontainsメソッドを使用して特定の文字列が行に含まれているかどうかをチェックします。

“`java
import java.io.BufferedReader;
import java.io.FileReader;
import java.io.IOException;

public class SearchString {

public static void main(String[] args) {
String filePath = “input.txt”; //検索するファイルのパス
String searchString = “特定の文字列”; //検索する文字列

try (BufferedReader br = new BufferedReader(new FileReader(filePath))) {
String line;
while ((line = br.readLine()) != null) {
if (line.contains(searchString)) {
System.out.println(line);
}
}
} catch (IOException e) {
e.printStackTrace();
}
}
}
“`

これらのアプローチは、特定の文字列が部分文字列として行に含まれている場合も処理できます。ただし、大文字小文字の区別をしたくない場合や、正規表現を使用したい場合は、さらなる改良が必要です。

コメントを残す