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

解决方案 »

  1.   

    没有规律的事你觉得计算机能做么?
    根据你说所说的,只能这么做了。。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]次(含)以上交通违法未处理的,未纳入重点对象管理的企业所属的货运及客运属性的大型车辆
      

  2.   

    这个程序有BUG,你执行这个程序试试。。我改了参数