<ParaFile name="COMM" type="1">
<Items name="GROUP1" SetNo="1"
<Item name="ss"  dvalue="44" validM=""/>
<Item name="bb"  dvalue="44" validM=""/>
<Item name="gg"  dvalue="44" validM=""/>
</Items>
</ParaFile>---------------------------------------------------------------
假设上面是一段字符串,我有3个数字1-3;
我想把1,3依次放入dvalue里面,怎么写这个程序效率最高。返回字符串:
<ParaFile name="COMM" type="1">
<Items name="GROUP1" SetNo="1"
<Item name="ss"  dvalue="1" validM=""/>
<Item name="bb"  dvalue="2" validM=""/>
<Item name="gg"  dvalue="3" validM=""/>
</Items>
</ParaFile>for (int i = 0; i < 3; i++)
{
  ...........
}

解决方案 »

  1.   

    可以在网上查找一下,或者看看下面这个文章,非常有用的东西。http://bluesmile979.spaces.live.com/blog/cns!F2868B2CA84DE23C!121.entry
      

  2.   

    package rigex;import java.io.BufferedReader;
    import java.io.BufferedWriter;
    import java.io.File;
    import java.io.FileNotFoundException;
    import java.io.FileReader;
    import java.io.FileWriter;
    import java.io.IOException;
    import java.util.regex.Matcher;
    import java.util.regex.Pattern;public class RegexTest {
    /**
     * <Item name="ss" dvalue="1" validM=""/>
     * 
     */
    private static String reg = "dvalue=\"(\\d*)\""; public static void main(String[] args) {
    try {
    File f = new File("D:\\1.txt");
    BufferedReader br = new BufferedReader(new FileReader(f));
    String line = null;
    StringBuffer sb = new StringBuffer();
    int i = 1;
    while ((line = br.readLine()) != null) {
    Pattern p = Pattern.compile(reg);
    Matcher m = p.matcher(line);
    if (m.find()) {
    String l = m.group(1);
    line = line.replaceAll(l, String.valueOf(i));
    i++;
    }
    sb.append(line);
    }
    System.out.println(sb);
    } catch (FileNotFoundException e) {
    e.printStackTrace();
    } catch (IOException e) {
    e.printStackTrace();
    }
    }}