我正在尝试用Java创建一个解析器,它可以帮助我从文本文件中获取一些细节.
文件中的数据如下所示,但有更多条目:
.
http://www.someurl1.com/
PERSONAL ADDRESS: Mozart, W.A.; Some address 1, Austria; email: mymail1@mail.com
.
http://www.someurl2.com/
PERSONAL ADDRESS: Beethoven, L.V.; Some address 2, Germany; email: mymail2@mail.com
Run Code Online (Sandbox Code Playgroud)
正如您所看到的,数据总是尊重模式,我想要获得的只是每个条目的名称和电子邮件.一个可能的好输出是这样的:
Mozart, W.A. ; mymail1@mail.com
Beethoven, L.V. ; mymail2@mail.com
Run Code Online (Sandbox Code Playgroud)
每个条目都以a开头,.后跟第一行中的空格.然后在点上方的下一行,有URL.在以下行中,有更多数据:名称,地址和电子邮件,所有数据都以a分隔;.
这并不难,但我有一些麻烦开始.我创建了一个Main类,在其中我将文本文件读取到String.但是我真的不知道在Java中解析这样的东西的最佳方法是什么,如果我应该尝试使用正则表达式或只是寻找;.
逐行读入文本文件,然后根据该行执行操作.
BufferedReader br = new BufferedReader(new FileReader(file));
String line;
while ((line = br.readLine()) != null) {
// process the line.
if (line.equals(". "))
{
// Do something with first line
line = br.readLine()
// Do something with second line
line = br.readLine()
// Split up the third line by space
String split[]= StringUtils.split(line); // split[1] = "Mozart," so you may need to do a little more work there
}
}
br.close();
Run Code Online (Sandbox Code Playgroud)