日期:2014-05-18  浏览次数:20690 次

字符串中的数字替换
有这么一串字符串:"[1]年内有[2]次(含)以上交通违法未处理的,未纳入重点对象管理的企业所属的货运及客运属性的大型车辆".需要把[]里的数字分别替换掉成[12],[18]。请大神帮忙写个程序,重谢!!(不要写死,因为参数可能有时候会有多个)

------解决方案--------------------
没有规律的事你觉得计算机能做么?
根据你说所说的,只能这么做了。。

public static void main(String[] args) {
String[] n={"10","20","30","40"};
int num=0;

String str="[1]年内有[2]次(含)以上交通违法未处理的,未纳入重点对象管理的企业所属的货运及客运属性的大型车辆";
Matcher m = Pattern.compile("\\[\\d{1}\\]").matcher(str);
int i=0;
while(m.find()){
String s=m.group();
int indexOf = str.indexOf(s,i);
str=str.substring(0,indexOf+1)+n[num++]+str.substring(indexOf+s.length()-1);
i=indexOf;
}
System.out.println(str);
}

结果:
[10]年内有[20]次(含)以上交通违法未处理的,未纳入重点对象管理的企业所属的货运及客运属性的大型车辆