0

我必须从一个不均匀且有点复杂的文件中读取文本基本上是按这个顺序

Index . word / DOC_id : position1 postition2 (....and so on), DOC_id : position1 postition2 (....and so on),

所以一个词可以出现在 n 个文档中,并且可以在一个文档中出现 n 次。例如,我正在复制文件的一小部分,由于空间限制,我不能放置出现次数过多的单词。

例子:

13137 . speeding / D85 : 5999  , 
13138 . spell / D53 : 1513  , 
13139 . spelling / D3 : 344 351  , 
13140 . spending / D71 : 398  , 
13141 . spiderman / D60 : 650 733 997 1023 1053 1133 1152 1169  , 
13142 . spiders / D75 : 704  , D91 : 19834  ,
(...and so on)

请任何人都可以帮我解决这个问题。另外,我可以在生成此文件时以更好的方式格式化文件吗,也许我可以重新格式化它并生成格式更好的文本文件。

谢谢你 :)

4

1 回答 1

0

也许您应该使用新行作为分隔符。这就是我的意思

13137 . speeding / D85 : 5999
13138 . spell / D53 : 1513 
13139 . spelling / D3 : 344 351
13140 . spending / D71 : 398
13141 . spiderman / D60 : 650 733 997 1023 1053 1133 1152 1169
13142 . spiders / D75 : 704 , D91 : 19834

换句话说,具有以下性质的格式

Index . word / DOC_id : position1 postition2 ... , DOC_id : position1 ...
Index . word / DOC_id : position1 postition2 ... , DOC_id : position1 ...
Index . word / DOC_id : position1 postition2 ... , DOC_id : position1 ...

编辑

现在您可以一次检索一行,将它们推入一个ScannerStringTokenizer什至使用String.split记住空格将用作分隔符。解析跟踪./:的每个标记,。您已经知道每行的格式以及使用了哪些分隔符;使用该信息并继续。

于 2014-12-02T02:27:12.807 回答