这种情况比较复杂,用正则表达式可能会比较麻烦,而且据说正则表达式的效率也不是很好。
不如用 Tokenizer 来分解。
首先肯定是以行为单位,然后用 Tokenizer 分析每一行的数据,再分析每一个 token
不如用 Tokenizer 来分解。
首先肯定是以行为单位,然后用 Tokenizer 分析每一行的数据,再分析每一个 token
解决方案 »
- swing怎么判断文本框没有输入内容
- 不知道大家与没遇到这种情况
- 问一个java访问修饰符的问题
- 能通过线程的标识号取得某个线程吗?
- JAVA新手提问:JAVA客户端通过SOAP与.NET的WebServices进行通信
- 高手挑战强劲JAVA代码+测试Java的性能,以及群集计算机的性能测试,同时也为了测试群集计算机的数据出来能力!期望高手各显神通
- 关于JTextArea的文本区内文本行间距问题,求助
- 文件格式转换问题,再线等,急
- 各位,圣诞快乐!散分!
- 我的《JBuilder开发人员指南》用ACROBAT打不开不知是为什么????有回就有分!
- 请问下面一段代码的几个问题
- =====linux上的j2se安装问题,帮忙呀……
还有考虑到,有的key具有同义词,比如最后几行的RX,RA,RT,RL都认为是同一个key,而且有的值value分成几行,并不是严格已key-value格式出现的,所以还得解决value和那个key对应正确的问题。我现在正在写这个算法,我只是想有没有比这种实现更好,更简便些的方法或算法!非常感谢!!
你可以每取一行,进行一次 token 分析。
把最后一个 token 和下面一条连接起来再进行 token 分析
因为你这个情况实在有些复杂,所以用正则表达式实在不太合适。
new FileReader("lib/ori_src.txt"));
PrintWriter out = new PrintWriter(
new File("lib/result.txt"));
StringTokenizer token;
String content = null;
while((content = in.readLine()) != null){
token = new StringTokenizer(content,"*");
while(token.hasMoreTokens()){
out.println(token.nextToken());
}
}
in.close();
out.close();
其实那些数据是此Web页面上抽取下来的,里面还包含有别的字符(如打印符,换行符等),而且使用string.trim()也不能去掉那些表面看来是空格的特殊字符,感觉还是有些麻烦的!可以仔细看一下那些数据:我本来在每个数据Entry后打印四个星“****”,而抽取出的数据有的包含六七个星,估计那是非打印字符惹得祸吧!这该如何解决?