gpt4 book ai didi

java - 使用用户输入搜索文本文件

转载 作者:行者123 更新时间:2023-12-01 11:39:09 25 4
gpt4 key购买 nike

我遇到了问题。我想从 String [] 中搜索文本文件以查找多个匹配的关键字。我只想输出包含一个或多个这些匹配关键字的句子。

所以String[] keywords = { "going", "What book", "not go","office", "okay"};

如果一个名为 data.txt 的文件包含句子“我将于 6 点去办公室”。并且用户输入“going and office”我想将这句话打印到控制台。但截至目前,我只能在文件中搜索一个匹配的关键字。有人可以指导我在文件中查找多个关键字的方向吗?

这是我搜索文本的方法

public static void parseFile(String s) throws FileNotFoundException {
File file = new File("data.txt");

Scanner scanner = new Scanner(file);
while (scanner.hasNextLine()) {
final String lineFromFile = scanner.nextLine();
if (lineFromFile.contains(s)) {
// a match!
System.out.println(lineFromFile);
// break;
}

}
}

这是我的主要方法

public static void main(String args[]) throws ParseException,
FileNotFoundException {


String[] keywords = { "going", "What book", "not going ","office", "okay"};


boolean endloop = false;

boolean found = false;

Scanner scanner = new Scanner(System.in);
String input = null;

System.out.println("What's up?");
do {
System.out.print(" - ");
input = scanner.nextLine().toLowerCase();
for (String keyword: keywords) {
if (input.contains(keyword)) {

parseFile(keyword);
}
}
if (!found) {
System.out
.println("I am sorry I do not know");
}

break;
}

while (!input.equalsIgnoreCase("thanks"));
System.out.println(" Have a good day!");

}
}

最佳答案

只需使用循环即可。无论哪种方式,如果一个匹配就足够了:

String line = ...;
String[] search = new String[]{...};

boolean match = false;

for(int i = 0 ; i < search.length && !match; i++)
match = line.contains(search[i]);

或者,如果所有字符串都必须是行的一部分:

String line = ...
String[] search = new String[]{...};

boolean match = true;

for(int i = 0 ; i < search.length && match ; i++)
match = line.contains(search[i]);

关于java - 使用用户输入搜索文本文件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29688802/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com