| 编程中国 | 业界新闻 | 技术文章 | 视频教程 | 下载频道 | 程序源码 | 个人空间 | 编程论坛
全能ASP/PHP/ASP.NET主机,支持月付专业 MSSQL 数据库空间,支持月付专业 MySQL 数据库空间,支持月付赛孚耐:软件保护加密专家
身份认证令牌USB KEY   
共有 1523 人关注过本帖
标题:[求助]一道正则表达试的IO题
收藏  订阅  推荐  打印 
千里冰封
Rank: 12Rank: 12Rank: 12
来自:灌水之王
等级:版主
威望:155
帖子:28360
积分:4616
注册:2006-2-26

我终于发现了,你的代码写错了,

应该是

[CODE]public void read() //读文件
{
String strIn;
try
{
while((strIn = br.readLine())!=null)
{
strIn=strIn.replaceAll("\u3000"," ");
Matcher m = Pattern.compile("\\d\\s+").matcher(strIn);
while(m.find())//是while而不是if,并且你的写出也经移到全部配完之后
{
String out = m.group();
strIn = strIn.replaceFirst(out,out.trim()+",");
System.out.println(strIn);
// toFormatIp(strIn);
}
write(strIn);
}
}
catch (IOException e)
{
e.printStackTrace();
}
}[/CODE]

可惜不是你,陪我到最后
2007-1-30 23:46
千里冰封
Rank: 12Rank: 12Rank: 12
来自:灌水之王
等级:版主
威望:155
帖子:28360
积分:4616
注册:2006-2-26

以后可要小心哦,我给你的示例都是while循环,你却用的是if


可惜不是你,陪我到最后
2007-1-30 23:47
limaoyuan
Rank: 4
等级:高级会员
帖子:493
积分:5090
注册:2006-6-25

哦,这里错啦....太感谢了..
我一般都是贴子上看会了,然后自己去试着编一遍..是我太马虎了..

谢谢,千里,超级丈义.........


我在说's blog   http://www.WoZaiShuo.com.cn
2007-1-30 23:54
limaoyuan
Rank: 4
等级:高级会员
帖子:493
积分:5090
注册:2006-6-25

你可以正确输出了吗?我好像还是有问题..


我在说's blog   http://www.WoZaiShuo.com.cn
2007-1-30 23:56
limaoyuan
Rank: 4
等级:高级会员
帖子:493
积分:5090
注册:2006-6-25

没问题!我看错文件了.........

SORRY!

谢谢千里~~~~~

赶紧睡觉吧..都12点了..明天你还上班呢..

我在说's blog   http://www.WoZaiShuo.com.cn
2007-1-30 23:57
limaoyuan
Rank: 4
等级:高级会员
帖子:493
积分:5090
注册:2006-6-25

以下是引用千里冰封在2007-1-30 23:46:15的发言:
我终于发现了,你的代码写错了,

应该是

[CODE]public void read() //读文件
{
String strIn;
try
{
while((strIn = br.readLine())!=null)
{
strIn=strIn.replaceAll("\u3000"," ");
Matcher m = Pattern.compile("\\d\\s+").matcher(strIn);
while(m.find())//是while而不是if,并且你的写出也经移到全部配完之后
{
String out = m.group();
strIn = strIn.replaceFirst(out,out.trim()+",");
System.out.println(strIn);
// toFormatIp(strIn);
}
write(strIn);
}
}
catch (IOException e)
{
e.printStackTrace();
}
}[/CODE]

再请问一下,这里的write在while里面和在外面有什么区别吗?
当然结果是一个正确一个错误了..
可是从表面看上去,都是把更改后的strln写入文件呀..


我在说's blog   http://www.WoZaiShuo.com.cn
2007-1-30 23:59
千里冰封
Rank: 12Rank: 12Rank: 12
来自:灌水之王
等级:版主
威望:155
帖子:28360
积分:4616
注册:2006-2-26

以下是引用limaoyuan在2007-1-30 23:59:30的发言:

再请问一下,这里的write在while里面和在外面有什么区别吗?
当然结果是一个正确一个错误了..
可是从表面看上去,都是把更改后的strln写入文件呀..

当然有区别
在while 外面就表示全部匹配和替换都完成了,再把这条写入文件

而在里面的时候,就每次匹配一条都会写入一次,就会造成生成的文件比源文件还大,正常情况下应该是比源文件小的

关键在于:它是否已经全结匹配替换了


可惜不是你,陪我到最后
2007-1-31 00:10
limaoyuan
Rank: 4
等级:高级会员
帖子:493
积分:5090
注册:2006-6-25

了解了,果然是这样的.........谢谢

我在说's blog   http://www.WoZaiShuo.com.cn
2007-1-31 13:46
关于我们 | 广告合作 | 编程中国 | 清除Cookies | Archiver | WAP | TOP

编程中国 版权所有,并保留所有权利。鲁ICP备08000592号
Powered by Discuz, Processed in 0.064280 second(s), 9 queries.
Copyright©2004-2008, BCCN.NET, All Rights Reserved