说详细点,呵呵:
比如:
我的标记列表是用一个XML文件表示的:
...
<Entry id="0" start="ID --" end="]]" field="id"/>
<Entry id="1" start="Title --" end="]]" field="title"/>
<Entry id="2" start="Email --" end="\n" field="email"/>
<Entry id="2" start="Content--" end="[END]" field="content"/>
....
<Entry id="n" start="Notes --" end="^_^" field="notes"/>而我现在要分析的文本大概是:
....一些废话,马上开始了有用内容...
ID --...一个id...]]
Title --...这是标题...]]
....中间夹杂一点废话.....
Email --..这是Email字段..
Content--.....这是很多行文字,内容不定,可能包含标记的中的特殊字符,
...........................................afsasdfas,df,saf.asf
dfkasfasdfaskl;fkls;afk asfkas fasf
asfasklfasl;fsadfj..............[END]
............................................
Notes --...这是最后字段了......
..sd.af.sadfadfas.....^_^
....又是一段长短不一的废话,马上开始了有用内容...
ID --.......
Title --.......
Email --........
............
等等,大概是这样的循环。同时,有时文本中标记的出现顺序有可能互换,比如在某一段
Title在后,Email在前。或者有一段没有Email字段,不很规则。事先将该XML文件读入到了一个HashMap,然后分析文本,不断的提取出新纪录,保存。。
比如:
我的标记列表是用一个XML文件表示的:
...
<Entry id="0" start="ID --" end="]]" field="id"/>
<Entry id="1" start="Title --" end="]]" field="title"/>
<Entry id="2" start="Email --" end="\n" field="email"/>
<Entry id="2" start="Content--" end="[END]" field="content"/>
....
<Entry id="n" start="Notes --" end="^_^" field="notes"/>而我现在要分析的文本大概是:
....一些废话,马上开始了有用内容...
ID --...一个id...]]
Title --...这是标题...]]
....中间夹杂一点废话.....
Email --..这是Email字段..
Content--.....这是很多行文字,内容不定,可能包含标记的中的特殊字符,
...........................................afsasdfas,df,saf.asf
dfkasfasdfaskl;fkls;afk asfkas fasf
asfasklfasl;fsadfj..............[END]
............................................
Notes --...这是最后字段了......
..sd.af.sadfadfas.....^_^
....又是一段长短不一的废话,马上开始了有用内容...
ID --.......
Title --.......
Email --........
............
等等,大概是这样的循环。同时,有时文本中标记的出现顺序有可能互换,比如在某一段
Title在后,Email在前。或者有一段没有Email字段,不很规则。事先将该XML文件读入到了一个HashMap,然后分析文本,不断的提取出新纪录,保存。。
解决方案 »
- 算法问题啊~~~~~~~~关于排序,不知道有没有人会啊!哎
- java.sql.sqlexception:ora-00936:缺失表达式这个异常是怎么意思?
- 如何循环打印出001,002,003,004,005.....050
- 如何停止一个正在运行的线程?
- Ext.ux.dialog common-fileupload 整合
- JAVA应用程序的内存释放问题????????
- 高分求一个算法
- 在new一个java对象时,如何控制程序员是否必须实现一个方法
- Exception能不能自己定义错误号?
- StringBuilder和String的 equals的区别
- 各位大虾!急!帮忙!关于透明图片的问题,尤请beyond_xiruo兄!高分!
- 菜鸟关于applet的简单问题
可以用startsWith,endsWith来匹配。当然如果要进一步提高效率,可以考虑使用多线程。
我也认为影响效率的不是读文件而是匹配。
可以考虑这样来分配线程:
使用一个线程来读文件,多个线程来匹配。
读文件线程将读的内容以行为单位顺序放到几个对队列里,每个队列对应一个线程,
匹配线程对每个对列的内容进行处理。当然这种方法的前提是我们最后的结果不考虑在文件中的顺序。