String str = "<root><node><time>12:30</time><name>数据一</name><type></type></node><node><time>12:30</time><name>数据二</name><type></type></node><node><time>12:30</time><name>数据三</name><type></type></node></root>";String[] arr = ["<name>123</name>","<name>456</name>","<name>789</name>"];
如何让 数组的 arr[0],arr[1],arr[2] 分别替换 str 中的 <name>数据一</name>,<name>数据二</name>,<name>数据三</name>
最后返回 替换后的 str请给出一段代码,谢谢大家了!!!
如何让 数组的 arr[0],arr[1],arr[2] 分别替换 str 中的 <name>数据一</name>,<name>数据二</name>,<name>数据三</name>
最后返回 替换后的 str请给出一段代码,谢谢大家了!!!
for(int i=0;i<arr.length;i++){
String s=str.substring(str.indexOf("<name>"), str.indexOf("</name>")+7);
str=str.replaceFirst(s, arr[i]);
}
str=str.replaceAll(" ", "");
System.out.println(str);
System.out.println(str);
不知道这样算不算改题目了,也可以用特殊符号在循环里对arr的数值进行处理,最后再替换,楼主自己想吧~哈哈
下面是我的代码,能够完成功能,自认为比较好啊!public class Replace {
public static void main(String[] args) {
String str = "<root><node><time>12:30</time><name>数据一</name><type></type>" +
"</node><node><time>12:30</time><name>数据二</name><type></type>" +
"</node><node><time>12:30</time><name>数据三</name><type></type></node></root>";
String[] arr = {"<name>123</name>","<name>456</name>","<name>789</name>"};
//先将str用split方法从<name>*</name>处分割开,此处用正则表达式匹配中文字符
String[] temp = str.split("<name>[\u4E00-\u9FA5]+</name>");
StringBuffer sb = new StringBuffer();//存放结果
//下面将arr中的内容加入到分割后的字符串中
//一个temp后面跟一个arr
for(int i=0; i<arr.length; i++) {
sb.append(temp[i]);
sb.append(arr[i]);
}
//把最后的一个temp加入到其中,得到结果
sb.append(temp[temp.length-1]);
System.out.println(sb);
}
}