奇怪的“|”

showone 2005-03-30 03:12:44
如下程序:
public static void main(String[] args) {
String str1="轻轻的我走了|正如我轻轻的来|我轻轻的招手|作别西天的云彩";
String str2="轻轻的我走了/正如我轻轻的来/我轻轻的招手/作别西天的云彩";
System.out.println(str1.replaceAll("|","/"));
System.out.println(str2.replaceAll("/","|"));
}

输出如下:
/轻/轻/的/我/走/了/|/正/如/我/轻/轻/的/来/|/我/轻/轻/的/招/手/|/作/别/西/天/的/云/彩/

轻轻的我走了|正如我轻轻的来|我轻轻的招手|作别西天的云彩
为什么“|”不能被替代为“/”?????
...全文
61 点赞 收藏 5
写回复
5 条回复
切换为时间正序
当前发帖距今超过3年,不再开放新的回复
发表回复
yeshucheng 2005-03-30
呵呵,转义字符了
回复
demon37 2005-03-30
没看到 zcjl() 的回复
上面的回复本人收回
回复
demon37 2005-03-30
可能是
|是char
String是char型的集合
含有|所以 在“轻轻的我走了|正”中 实际是这样的 “|轻|轻|的|我|走|了|||正”因此
System.out.println(str1.replaceAll("|","/")); 的输出 是这样“/轻/轻/的/我/走/了/|/正”
这只是个人推测
如果错了别拿石头砸我
这样可以达到效果
System.out.println(str1.replace('|',' ').replaceAll(" ","/"));
轻轻的我走了/正如我轻轻的来/我轻轻的招手/作别西天的云彩
回复
zcjl 2005-03-30
replaceAll是根据正则表达式来匹配的,而|是正则表达式的一个特殊字符,得转义才行
回复
zcjl 2005-03-30
String str1 = "轻轻的我走了|正如我轻轻的来|我轻轻的招手|作别西天的云彩";
String str2 = "轻轻的我走了/正如我轻轻的来/我轻轻的招手/作别西天的云彩";
System.out.println(str1.replaceAll("\\|", "/"));
System.out.println(str2.replaceAll("/", "|"));
回复
发帖
Java EE
创建于2007-09-28

6.6w+

社区成员

J2EE只是Java企业应用。我们需要一个跨J2SE/WEB/EJB的微容器,保护我们的业务核心组件(中间件),以延续它的生命力,而不是依赖J2SE/J2EE版本。
申请成为版主
帖子事件
创建了帖子
2005-03-30 03:12
社区公告
暂无公告