%s替换

rotApple 2009-10-19 02:34:04
比如一个URL,http://xxx.xxx.xxx/?a=%s&b=%ss&c=%sss

replaceAll("%s", "1").replaceAll("%ss", "2").replaceAll("%sss", "3");

就有问题了。

怎么解决?
...全文
378 13 打赏 收藏 转发到动态 举报
写回复
用AI写文章
13 条回复
切换为时间正序
请发表友善的回复…
发表回复
rotApple 2009-10-21
  • 打赏
  • 举报
回复
哎。以后不来这里了。
gukuitian 2009-10-19
  • 打赏
  • 举报
回复
跟位置没关吧,先换最长的就行了。
还是我没理解LZ的问题
lz12366 2009-10-19
  • 打赏
  • 举报
回复
我觉得应该有个替换的顺序!!
例如优先替换ts 或者优先替换t
believefym 2009-10-19
  • 打赏
  • 举报
回复
所以控制一下replace的顺序没什么错吧

我就不知道楼主说的位置不固定是啥意思了
xucan2087 2009-10-19
  • 打赏
  • 举报
回复
学习了
FlashDragon 2009-10-19
  • 打赏
  • 举报
回复
方法是有的
1、先对URL的String有“=”分割成数组A
2、然后再对数组的每一项用“&”进行分割成数组B,对于数据B中的每一项和要替换的“%var”进行比较,相同就替换成对应的值,例如:if(B[i]=="%t") B[i]="123",以此类推,替换完成之后,在A和B两个数据按照原顺序组合字符串即可。
rotApple 2009-10-19
  • 打赏
  • 举报
回复
好吧,我再详细说下
比如,我的URL是http://a.b.c/?timestamp=%ts&time=%t&last=%l"e=%ln

那么如果我replaceAll("%t", "123").replaceAll("%ts") <-- 有问题了。 因为替换%t的时候%ts已经变成了123s了。

我说过,位置不固定的,需要另一种解决方案。可能不能用replaceAll
zzzfff2008 2009-10-19
  • 打赏
  • 举报
回复
同意二楼的
wangjn1982 2009-10-19
  • 打赏
  • 举报
回复
替换肯定是先替换字符长度最大的,然后长度第二大的,依次替换。
lz的问题是什么?
rotApple 2009-10-19
  • 打赏
  • 举报
回复
只是说的一个例子。
比如我的URL是http://www.xx.com/?timestamp=%ts&time=%t
这时%ts和%t冲突了,这个意思。
querystring当然不可能是固定位置了。
gukuitian 2009-10-19
  • 打赏
  • 举报
回复
晕啊。
rotApple 2009-10-19
  • 打赏
  • 举报
回复
-_-#

大哥啊。。你这。。。 汗。

顺序不是固定的啊。
swandragon 2009-10-19
  • 打赏
  • 举报
回复

str = str.replaceAll("%sss", "3").replaceAll("%ss", "2").replaceAll("%s", "1");

62,616

社区成员

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

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