比如一个URL,http://xxx.xxx.xxx/?a=%s&b=%ss&c=%sssreplaceAll("%s", "1").replaceAll("%ss", "2").replaceAll("%sss", "3");就有问题了。怎么解决?

解决方案 »

  1.   


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

  2.   

    只是说的一个例子。
    比如我的URL是http://www.xx.com/?timestamp=%ts&time=%t
    这时%ts和%t冲突了,这个意思。
    querystring当然不可能是固定位置了。
      

  3.   

    好吧,我再详细说下
    比如,我的URL是http://a.b.c/?timestamp=%ts&time=%t&last=%l&quote=%ln那么如果我replaceAll("%t", "123").replaceAll("%ts") <-- 有问题了。 因为替换%t的时候%ts已经变成了123s了。我说过,位置不固定的,需要另一种解决方案。可能不能用replaceAll
      

  4.   

    方法是有的
    1、先对URL的String有“=”分割成数组A
    2、然后再对数组的每一项用“&”进行分割成数组B,对于数据B中的每一项和要替换的“%var”进行比较,相同就替换成对应的值,例如:if(B[i]=="%t") B[i]="123",以此类推,替换完成之后,在A和B两个数据按照原顺序组合字符串即可。
      

  5.   

    所以控制一下replace的顺序没什么错吧我就不知道楼主说的位置不固定是啥意思了
      

  6.   

    我觉得应该有个替换的顺序!!
    例如优先替换ts  或者优先替换t