我想用Java搜索一个文件中的字符串
我正试图创建这个自我项目,却被卡住了。我正在尝试获取用户输入,搜索包含该输入关键字的字符串[]。如果找到关键字,请在文件中搜索包含该关键字的句子,并返回包含该关键字的整个句子。这应该在for循环中完成吗我想用Java搜索一个文件中的字符串,java,search,Java,Search,我正试图创建这个自我项目,却被卡住了。我正在尝试获取用户输入,搜索包含该输入关键字的字符串[]。如果找到关键字,请在文件中搜索包含该关键字的句子,并返回包含该关键字的整个句子。这应该在for循环中完成吗 public static void parseFile( Scanner searchStr ) throws FileNotFoundException { File file = new File("data.txt"); String [] keywords
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”的文本文件
它有几个要素。
1.巴格斯是个有趣的家伙
2.他的名字写在墙上
如有任何建议,将不胜感激
Scanner scan = new Scanner(file);
while( searchStr.hasNext() )
使用两种不同的扫描仪。看起来,
searchStr
从未收到要查看的文件,因此它从未经过循环。您忘记将所有关键字设置为小写:
String[]关键字={“day”、“what church”、“name”、“leman”、“世俗”、“bugs”}代码>
另外,您使用了错误的扫描仪
searchStr=新扫描仪(文件)
你有你的while(searchStr.hasNext)
如果你想搜索文件,你应该在文件扫描器上循环(即while(scan.hasNext())
…我不确定您的另一个扫描仪是什么searchStr它是用户输入的,因为我只会将它存储在字符串中,然后将字符串传递给您的parseFile
方法,而不是扫描仪…所以最好存储整个输入,然后将其传递到字符串中?然后在字符串中搜索关键字,然后搜索文件?我试图在输入中搜索关键字,然后同时搜索文件,但从我得到的反馈来看,这是不可能的。最好使用包含您试图搜索的文件的扫描仪,而不是没有输入的扫描仪。不清楚您试图做什么用户从键盘?您应该传入一个包含用户输入的字符串。然后首先搜索用户输入,查看它是否包含关键字。您可以在关键字上循环并使用userinput.contains(关键字)
如果它包含关键字,则保存它以搜索文件。然后在文件扫描器上循环并搜索上面找到的关键字…您可能还需要正则表达式来决定什么是“句子”,什么不是。。。