日期:2014-05-19  浏览次数:20680 次

多个字符串如何替换
比如:StrString="1|2|6";
我想替换后变成:"银联支付|手机支付|消费积分支付";

(1-银联支付 2-手机支付; 4-上门付款;5-话费支付;6-消费积分支付;)

我知道这个用循环是可以一个一个的替换,但我想就是有没有更简单点的办法?或者有没有高手用正则

------解决方案--------------------
正则的话可以用 \d
可以写个函数顺序替换 \d代码的数字
可以参照
Format(string format, object arg0) 的格式
------解决方案--------------------
replaceAll可以么?
正则我不熟
Java code

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就是批量替换了啊?
------解决方案--------------------
可以用map来存放对应关系,截取完字符串时候直接map.get("1")来得到对应的字符串,然后拼接一下即可。正则没研究。
------解决方案--------------------
多个替换为多个,估计得用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

------解决方案--------------------
replace("","")
------解决方案--------------------
期待中