有这样一个url:   http://***.130.***.***:85/****/PortData.aspx?verNo={0}&cu={1}&sn={2}&im={3}&sm={4}&ty={5}现在将它视为String,{}里面的数值其实是变化的,现在要将{}里面的数值依次拿出来,怎么拿?真心求教,急!在线等!求大神们解答!

解决方案 »

  1.   

    indexOf("{")  和indexOf("}")然后substring
    截取剩下的 递归调用
      

  2.   

    您确定要用java解决这个问题? asp的url。
      

  3.   

    字符串里有5对{}啊,indexOf()可以?并且{}里面的数值还不是确定的,可能是1位,可能是2位,substring可以?
      

  4.   

    1楼的方法可以
    还可以split(“=”),然后得到String数组,除数组第一个元素,其余取其第二个值。
      

  5.   

    一开始是个完整的string=url 你第一次indexOf拿到 第一个{ }截取其间的内容  之后把 第一个} 后面的String 当作一个新的string 重新indexOf就可以了啊
      

  6.   

    把?前的字符串先全部去掉。然后把后面的分组取出来。string.split("&");
    然后再把不需要的东西去掉吧
      

  7.   


    String dasf = "http://***.130.***.***:85/****/PortData.aspx?verNo={0}&cu={1}&sn={2}&im={3}&sm={4}&ty={5}";

    matcher = Pattern.compile("\\{([^\\{]+)\\}").matcher(dasf);
    // System.out.println(matcher.replaceAll(""));
    while(matcher.find())    //find类似于迭代器 。无参数的是以0 start  以非匹配的前一个为end
    System.out.println(matcher.group(1));
      

  8.   


      public static void main(String[] args)
      { 
    String url="http://***.130.***.***:85/****/PortData.aspx?verNo={0}&cu={11}&sn={21}&im={3111}&sm={4}&ty={5}";
    while(url.indexOf("{")>0)
    {
    int start=url.indexOf("{");
    int end=url.indexOf("}");
    String temp=url.substring(start+1,end);
    System.out.println(temp);
    url=url.substring(end+1);
    }
      } 
    运行结果:
    0
    11
    21
    3111
    4
    5
      

  9.   

    我不会正则 不过也能解决 先截取字符串 从问号开始 然后用&将参数分成数组 然后依次判断
    正则真的很重要 学好正则是人才 不过正则跟JS给人的感觉是一样的 那特殊微妙的感觉..
      

  10.   

    不可以像JSP那样通过request.getParameter()来获取?