Java解析文本文件

时间:2012-08-01 09:29:12

标签: java performance parsing text-files

我需要为文本文件编写一个解析器(至少20 kb),我需要确定这个文本文件中是否出现了一组单词中的单词(大约400个单词和数字)。所以我正在寻找最有效的可能性来做到这一点(如果找到匹配,我需要对此进行一些进一步处理,这是前一行)。

我目前所做的是排除那些不包含任何信息的行(元数据行的种类),然后逐字逐句比较 - 但我不认为只是逐字逐句比较是最有效的可能性。

任何人都可以提供一些提示/提示/想法/...

非常感谢

2 个答案:

答案 0 :(得分:1)

这取决于你对“高效”的意思。

如果你想要一种非常简单的方法来编码它,请记住java中的String对象有方法String.contains(CharSequence sequence)。

然后,您可以将文件内容放入String中,然后使用方法contains()来迭代您要检查的关键字以查看是否有任何字符串出现在字符串中。

答案 1 :(得分:0)

以下内容如何:

Put all your keywords in a HashSet (Set<String> keywords;)
Read the file one line at once
  For each line in file:
  Tokenize to words
  For each word in line:
  If word is contained in keywords (keywords.containes(word))
    Process actual line
    If previous line is available
        Process previous line
  Keep track of previous line (prevLine = line;)