比如:StrString="1|2|6";
我想替换后变成:"银联支付|手机支付|消费积分支付";(1-银联支付 2-手机支付; 4-上门付款;5-话费支付;6-消费积分支付;)我知道这个用循环是可以一个一个的替换,但我想就是有没有更简单点的办法?或者有没有高手用正则

解决方案 »

  1.   

    正则的话可以用 \d
    可以写个函数顺序替换 \d代码的数字
    可以参照
    Format(string format, object arg0) 的格式
      

  2.   

    replaceAll可以么?
    正则我不熟String a="1|2|6";
    String[] a_value = {"1","2","4","5","6"};
    String[] a_name ={"银联支付","手机支付","上门付款","话费支付","消费积分支付"};
    for(int i=0;i<a_value.length;i++){
    a = a.replaceAll(a_value[i], a_name[i]);
    }
    System.out.println(a);当然如果你替换的内容中包含了1,2,4,5,6这些数字,上面就会出问题了。
      

  3.   

    可以用map来存放对应关系,截取完字符串时候直接map.get("1")来得到对应的字符串,然后拼接一下即可。正则没研究。
      

  4.   

    多个替换为多个,估计得用replaceAll了(如4楼),正则好像是可以把多个替换成一个:
        String regEx = "a|f"; //表示一个或多个a
         Pattern p = Pattern.compile(regEx);
         Matcher m = p.matcher("aaabbcedfff a ccdeaa");
         String s = m.replaceAll("A");
    aaabbcedfff a ccdeaa  
    --->
    AAAbbcedAAA A ccdeAA