JAVA 中的模式匹配

HF_SKY000 2010-05-03 02:42:55
请救一个关于JAVA中的模式匹配问题:

我需要读取的文件大概有30MB左右,我现在想从文件中按行读取,然后按正则表达式进行匹配我需要的数据。
但是文件并不规则,当文件中含有空行。程序就不会往下读取了。不清楚在JAVA中怎么按行读取呀?
核心代码如下:
try{
BufferedReader bufferedreader =new BufferedReader(new FileReader(file));
String readline =bufferedreader.readLine();
while(readline!=null){
System.out.println(readline);
}
bufferedreader.close();

...全文
193 8 打赏 收藏 转发到动态 举报
写回复
用AI写文章
8 条回复
切换为时间正序
请发表友善的回复…
发表回复
zhuyouyong 2010-05-05
  • 打赏
  • 举报
回复
顶[Quote=引用 2 楼 leehomwong 的回复:]
Java code

StringBuffer strb = new StringBuffer();

while((myString=myBufferedReader.readLine())!=null)
{
strb.append(myString);
strb.append("\n"); //由于readLine会消除换行符,这里需要手工加入
}
Stri……
[/Quote]
wufengye12 2010-05-05
  • 打赏
  • 举报
回复
xue xi le
messihahahehe 2010-05-05
  • 打赏
  • 举报
回复
[Quote=引用楼主 hf_sky000 的回复:]
请救一个关于JAVA中的模式匹配问题:

我需要读取的文件大概有30MB左右,我现在想从文件中按行读取,然后按正则表达式进行匹配我需要的数据。
但是文件并不规则,当文件中含有空行。程序就不会往下读取了。不清楚在JAVA中怎么按行读取呀?
核心代码如下:
try{
BufferedReader bufferedreader =new BufferedReader(new FileRead……
[/Quote]
有道理
HF_SKY000 2010-05-03
  • 打赏
  • 举报
回复
[Quote=引用 4 楼 skep99 的回复:]
引用 3 楼 hf_sky000 的回复:
哈哈,谢谢楼上的朋友。
我再请教下一个问题,在这个文件中有这么一段内容:
CDMA-CS-L
000022976 000020822 000000000 000000000 000000000
我现在想匹配最后一组数据:000000000,请问怎么匹配呀?
我写的是:^ CDMA-CS-L\\s+$.*(\\d{9})\\s\\d{9}\\s……
[/Quote]
split是以指定的模式将指定的字符串进行切分,其实都要用到模式,请问这个正则表达式怎么写?多谢


skep99 2010-05-03
  • 打赏
  • 举报
回复
[Quote=引用 3 楼 hf_sky000 的回复:]
哈哈,谢谢楼上的朋友。
我再请教下一个问题,在这个文件中有这么一段内容:
CDMA-CS-L
000022976 000020822 000000000 000000000 000000000
我现在想匹配最后一组数据:000000000,请问怎么匹配呀?
我写的是:^ CDMA-CS-L\\s+$.*(\\d{9})\\s\\d{9}\\s\\d{9}\\s\\d{9}\\s\\d{9}
[/Quote]
这还用写正则么?直接split就好了
HF_SKY000 2010-05-03
  • 打赏
  • 举报
回复
[Quote=引用楼主 hf_sky000 的回复:]
请救一个关于JAVA中的模式匹配问题:

我需要读取的文件大概有30MB左右,我现在想从文件中按行读取,然后按正则表达式进行匹配我需要的数据。
但是文件并不规则,当文件中含有空行。程序就不会往下读取了。不清楚在JAVA中怎么按行读取呀?
核心代码如下:
try{
BufferedReader bufferedreader =new BufferedReader(new FileRead……
[/Quote]
哈哈,谢谢楼上的朋友。
我再请教下一个问题,在这个文件中有这么一段内容:
CDMA-CS-L
000022976 000020822 000000000 000000000 000000000
我现在想匹配最后一组数据:000000000,请问怎么匹配呀?
我写的是:^ CDMA-CS-L\\s+$.*(\\d{9})\\s\\d{9}\\s\\d{9}\\s\\d{9}\\s\\d{9}
24K純帥 2010-05-03
  • 打赏
  • 举报
回复

StringBuffer strb = new StringBuffer();

while((myString=myBufferedReader.readLine())!=null)
{
strb.append(myString);
strb.append("\n"); //由于readLine会消除换行符,这里需要手工加入
}
String content = strb.toString();
skep99 2010-05-03
  • 打赏
  • 举报
回复
你写的有问题,readline如果有值会死循环的.


try{
BufferedReader bufferedreader =new BufferedReader(new FileReader(file));
String readline="";
while(readline=bufferedreader.readLine()!=null){
System.out.println(readline);
}
...

62,621

社区成员

发帖
与我相关
我的任务
社区描述
Java 2 Standard Edition
社区管理员
  • Java SE
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧