0

我拿了一个文本文件并将其放在一个数组中。但是,我想在数组中搜索一个字符串(单词)。就我而言,我想使用扫描仪从用户那里获取输入,然后在数组中搜索字符串匹配。怎样才能完成这样的任务?

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
for(int i = 0; i < words.size(); i++){
  if(words.get(i).equals(string)){
     found!!
  }
}
于 2013-01-08T15:39:47.630 回答
1

您可以使用 List 中的 .contains() 函数。它将在每个元素上使用参数的 .equals() 方法

words.contains("your_string")

刚刚意识到您正在为每个索引保存一行,而不是一个单词。在这种情况下:

for(String sLine : words) {
    if (sLine.contains("your_string")) {
         System.out.println("Got a match");
         break;
     }
 }
于 2013-01-08T15:41:27.583 回答
0

其他人建议的equals()方法只有在你每行一个单词的情况下才有效。尝试遍历列表并查看一个(或多个)字符串是否包含(单词)您要查找的单词?

于 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 回答