<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++)
{
...........
}
<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++)
{
...........
}
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();
}
}}