[急~~]java 超诡异问题(string.replace),再线等

pcajax79 2012-08-13 08:12:50
各位高手,请帮我看看这个问题吧:

代码中 有如下一段代码: str = str.replace("<94", "<Y");
str = str.replace("</94", "</Y")

其中str =“<ap>
<姓名>张山</姓名>
<94地址>北京路1号</94地址>
<94备注>18</94备注>
</ap>”;



调用第一次replace后,str = “<ap>
<姓名>张山</姓名>
<Y地址>北京路1号</94地址>
<Y/ap>”

调用第二次replace后,str = “<ap>
<姓名>张山</姓名>
<Y地址>北京路1号</YY/ap>”

在windows上运行木有问题,再服务器上运行就出现这个问题了,服务器为aix,JDK的版本为1.5.

请各位大虾帮我看看吧。。
...全文
211 5 打赏 收藏 转发到动态 举报
写回复
用AI写文章
5 条回复
切换为时间正序
请发表友善的回复…
发表回复
pcajax79 2012-08-14
  • 打赏
  • 举报
回复
up...其他大虾还有什么见解没?
MiceRice 2012-08-13
  • 打赏
  • 举报
回复
看你给出来的代码,简直就像是碰到了大Bug,或者把匹配当作正则来处理了(但是正则中/是没有啥含义的),总的来说很奇怪。

不过我确实了解到过,不同Java版本对正则处理存在差异性,但replace()并不是针对正则处理的。

所以,如果要深入分析,只能是在服务器上,多写几个例子来测试测试看看。
pcajax79 2012-08-13
  • 打赏
  • 举报
回复
[Quote=引用 1 楼 的回复:]
可能是JDK不同版本问题。建议换成 replaceAll 吧,直接用正则应该安全系数高点点。

str = str.replaceAll("\\<94", "\\<Y");
str = str.replaceAll("\\<\\/94", "\\<\\/Y");
System.out.println(str);
[/Quote]
我不明白为什么调用replace后字符串会出现丢失的情况?你想知道吗?
pcajax79 2012-08-13
  • 打赏
  • 举报
回复
我不明白为什么调用replace后字符串会出现丢失的情况?你想知道吗?
MiceRice 2012-08-13
  • 打赏
  • 举报
回复
可能是JDK不同版本问题。建议换成 replaceAll 吧,直接用正则应该安全系数高点点。

str = str.replaceAll("\\<94", "\\<Y");
str = str.replaceAll("\\<\\/94", "\\<\\/Y");
System.out.println(str);

51,410

社区成员

发帖
与我相关
我的任务
社区描述
Java相关技术讨论
javaspring bootspring cloud 技术论坛(原bbs)
社区管理员
  • Java相关社区
  • 小虚竹
  • 谙忆
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

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