http://{unionmon}/abc.html?pid={processid}
把这个字符串中的{unionmon},{processid} 取出来  然后替换成 一个ip  和参数
结果为  http://127.0.0.0:8000/abc.html?pid=123大家帮忙 在线等

解决方案 »

  1.   

    看你的需求应该是域名已知,链接格式已知,pid的参数随机变化吧。
    需求还是有疑问,不够清晰。    //已知文本形式,无变数的时候
        String str = "http://{unionmon}/abc.html?pid={processid}";
        System.out.println(str.replace("{unionmon}","127.0.0.0:8000").replace("{processid}","123"));    
        //未知文本形式,得到域名统一的地址
        String str1 = "http://xxoo.com/abc.html?pid=1234454";
        String str2 = "http://123tttt.com/abc.html?pid=12324123";
        System.out.println(str1.replaceAll("(?<=http://)[^/]+(?=/abc.html\\?pid=\\w*)","127.0.0.0:8000"));
        System.out.println(str2.replaceAll("(?<=http://)[^/]+(?=/abc.html\\?pid=\\w*)","127.0.0.0:8000"));
      

  2.   


    public static void main(String[] args) {
    String src = "http://%1$s/abc.html?pid=%2$s";
    String params[] = new String[]{"127.0.0.0:8000","123"};
    System.out.println(String.format(src, params));
    }
      

  3.   

    谢谢大家  
    现在还有一个其他的疑问  就是字符串的replace
    以前没注意String s = "abc";
    System.out.println(s.replace("a","123"));
    大家都知道结果是123bcString s = "abc";
    s.replace("a","123");
    System.out.println(s);
    这个结果呢?
      

  4.   

    用perl的话,处理文本问题很简单。
      

  5.   

    如果不对repalce 后重新吧值赋给以前的引用  那么打印 出的原来的引用的值还是没有变化
      

  6.   


    String 类是final类public final class Stringextends Objectimplements Serializable, Comparable<String>, CharSequence
      

  7.   

    2楼, 你的regex中 "(?<=...)" 和"(?=)"分别是什么意思? 给讲解下!
      

  8.   


    这跟String是不是final类没有一毛钱关系,final类只是表明不能被继承而已String里主要起作用的时一个final的char数组合两个final的整数变量offset和length,而且都是私有的,也就是说一个String对象被创建后它的内容就是定死的了
    当然你真的想做一点点修改也不是完全不可能,因为char数组虽然是final的,但通过反射仍可以修改数组的内容,不过长度不能改变了,而且副作用很大,比如你把"abc"通过反射改成了"ABC",那么今后所有的"abc"啊,new String("abc")的都会变成"ABC"
      

  9.   

    字符串真的是一块难啃的骨头.....
    还看到有一个这样的例子:
       有一个很长很长的字符串,然后要在这个超长的字符转里面截取想要的一部分
       比如 String str = "123ab123123123123123ab121212fffffab......";
       要得到 ab
       有两种方法,一是 正则表达式
                   二是  用String 里面的方法截取  问题就是这两种方法那个效率会高一些.....
      

  10.   

    for循环n次查找,针对一个l长度的str里面找s长度的str,改变s和l的长度,改变要找到的str在母str中的位置比如很靠前和很靠后,实测几次。找固定字符串的,估计是String的方法快一些。
      

  11.   

    创建了一个String对象,不是只是创建了一个引用而已么?像指针那样,可以指向不同的内容。。
      

  12.   

    new String() 是实例化一个String对象  String d = "123"  这个123 是放在串池里的
      

  13.   

    我看过C#的正则表达式,但是对于JAVA的  还得好好学习