我想在文本文件中找到「$$$$」模式的實例數。以下方法適用於某些文件,但不適用於所有文件。例如,它不適用於以下文件(http://www.hmdb.ca/downloads/structures.zip - 它是一個帶有.sdf擴展名的壓縮文本文件)我找不到原因?我也試圖逃避空格。沒有運氣。當有超過35000個「$$$$」模式時,它返回11。請注意,速度至關重要。因此,我不能使用任何較慢的方法。FindWithinHorizon無法匹配
public static void countMoleculesInSDF(String fileName)
{
int tot = 0;
Scanner scan = null;
Pattern pat = Pattern.compile("\\$\\$\\$\\$");
try {
File file = new File(fileName);
scan = new Scanner(file);
long start = System.nanoTime();
while (scan.findWithinHorizon(pat, 0) != null) {
tot++;
}
long dur = (System.nanoTime() - start)/1000000;
System.out.println("Results found: " + tot + " in " + dur + " msecs");
} catch (Exception e) {
e.printStackTrace();
} finally {
scan.close();
}
}
非常感謝您的努力。優秀的答案。 – lochi
@lochi不客氣! – A4L