奇怪的“|”

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("/","|"));
}

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

轻轻的我走了|正如我轻轻的来|我轻轻的招手|作别西天的云彩
为什么“|”不能被替代为“/”?????
...全文
88 5 打赏 收藏 转发到动态 举报
AI 作业
写回复
用AI写文章
5 条回复
切换为时间正序
请发表友善的回复…
发表回复
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("/", "|"));

67,549

社区成员

发帖
与我相关
我的任务
社区描述
J2EE只是Java企业应用。我们需要一个跨J2SE/WEB/EJB的微容器,保护我们的业务核心组件(中间件),以延续它的生命力,而不是依赖J2SE/J2EE版本。
社区管理员
  • Java EE
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

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