0

テキスト ファイルを取得し、それを 1 つの配列に配置しました。ただし、配列内の文字列(単語)を検索したい。私の場合、スキャナーを使用してユーザーからの入力を取得し、配列内で一致する文字列を検索したいと考えていました。どうすればそのようなタスクを達成できますか?

public static void main(String[]args) throws IOException
{
    //Scanner scan = new Scanner(System.in);
    //String stringSearch = scan.nextLine();
    List<String> words = new ArrayList<String>();
    BufferedReader reader = new BufferedReader(new FileReader("File1.txt"));
    String line;
    while ((line = reader.readLine()) != null) {
                    words.add(line);        
        }
        reader.close();
        System.out.println(words);
}

私の出力:

[CHAPTER I. Down the Rabbit-Hole, Alice was beginning to get very tired of sitting by her sister on the, bank, and of having nothing to do:]
4

4 に答える 4

1

Listの.contains()関数を使用できます。各要素のパラメータの.equals()メソッドを使用します

words.contains("your_string")

1つの単語ではなく、インデックスごとに1行を節約していることに気づきました。この場合:

for(String sLine : words) {
    if (sLine.contains("your_string")) {
         System.out.println("Got a match");
         break;
     }
 }
于 2013-01-08T15:41:27.583 に答える
1
for(int i = 0; i < words.size(); i++){
  if(words.get(i).equals(string)){
     found!!
  }
}
于 2013-01-08T15:39:47.630 に答える
0

他のequals()人が提案した方法は、1 行に 1 つの単語がある場合にのみ機能します。リストを反復処理して、1 つ (または複数) の文字列に探している単語が含まれているかどうかを確認してください。

于 2013-01-08T15:41:55.903 に答える
0

このようなスキャナーで何かを行うことができます

Scanner sc = new Scanner(new File("File1.txt"));
String targetString = "whatYouWant";
String testString = sc.next();
while(sc.hasNext())
{
    if(testString.equals(targetString))
        hooray!
}

これは完全な解決策ではありませんが、これが実用的な解決策につながることを願っています。

于 2013-01-08T15:45:54.580 に答える