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请给出一段代码,谢谢大家了!!!

解决方案 »

  1.   

    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>"};
    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);
      

  2.   

    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 = str.replace("<name>数据一</name>",arr[0]).replace("<name>数据二</name>",arr[1]).replace("<name>数据三</name>",arr[2]);
    System.out.println(str);
      

  3.   


    不知道这样算不算改题目了,也可以用特殊符号在循环里对arr的数值进行处理,最后再替换,楼主自己想吧~哈哈
      

  4.   

    我觉得一楼的有问题,因为那样只是用arr[2]替换了<name>数据一</name>,二楼的办法比较麻烦,如果有1000个数据,你也那么写吗?
    下面是我的代码,能够完成功能,自认为比较好啊!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);
    }
    }