我想在Java中搜索文件中的String

时间:2015-04-10 17:37:25

标签: java search

我正在尝试创建这个自我项目并陷入困境。我正在尝试获取用户输入,使用该输入的关键字搜索字符串[]。如果找到关键字,则在文件中搜索带有found关键字的句子,并返回包含关键字的整个句子。这应该在for循环中完成吗?

  public static void parseFile( Scanner searchStr ) throws FileNotFoundException
{
    File file = new File("data.txt");
        String [] keywords = {" day","What church"," name","Leman", "Secular",   "bugs"};

    Scanner scan = new Scanner(file);
    while( searchStr.hasNext() )
    {

        String line = searchStr.nextLine().toLowerCase().toString();
        final String lineFromFile = scan.nextLine();
        for( String keyword : keywords )
        {
            if( lineFromFile.contains( keyword ) )
            {
                System.out.println( keyword );
            }
        }

    scan.close();
    //searchStr.close();

    }
}

这里是我调用parseFile()但由于某种原因它不搜索文件

                    parseFile(currentkeyword);

让我们说这个文本文件名为" data.txt" 它有一些元素。       臭虫是一个有趣的家伙       他的名字遍布整个墙壁

任何建议都将不胜感激。

2 个答案:

答案 0 :(得分:0)

Scanner scan = new Scanner(file);
while( searchStr.hasNext() )

使用两种不同的扫描仪。看起来searchStr永远不会被提供文件以便查看,所以这永远不会经历循环。

答案 1 :(得分:0)

您忘记将所有关键字设为小写:

String [] keywords = {" day","what church"," name","leman", "secular", "bugs"};

此外,您使用的是错误的扫描仪。

searchStr = new Scanner(file);