我有一个文件如下:
4 abiogenezele
5 abiogenezelor
6 acefaliile
7 acefaliilor
8 acetonuriile
....
它具有格式(ID_WORD WORD)并具有aproxim。 ~33000字。
我想输入一个单词来查找他的ID。
我试试这段代码。它有效,但效率不高。
int ID;
String word = "acefaliile";
String pattern = "(?i)([\\d]+) ("+word+")";
Pattern r = Pattern.compile(pattern);
boolean found = false;
// Read the file
try (BufferedReader br = new BufferedReader(new FileReader("./resources/txt/lemma.txt"))) {
String line;
while ((line = br.readLine()) != null) {
Matcher m = r.matcher(line);
if (m.find( )) {
// m.group(1) is ID
// m.group(2) is WORD
ID = Integer.parseInt(m.group(1));
found=true;
break;
}
}
if(!found) {
ID = 0;
}
}
答案 0 :(得分:1)
替代方法 - 将这些键/值对放在数组或列表中,对其进行排序,并使用二进制搜索。
答案 1 :(得分:0)
您可以将Lookeen用作file search程序!此工具会自动搜索文件内容,并且您有很多过滤选项。
免责声明:我为Lookeen的开发人员工作。