有个字符串为  <name>123</name><name>456</name><name>789</name><name>aaa</name><name>bbb</name>请问如何把他们转成字符串数组,
每个字符串分别为<name>123</name>,<name>456</name>,<name>789</name>,<name>aaa</name>,<name>bbb</name>

解决方案 »

  1.   

    直接用正则匹配<name> </name>中的值,然后拼接
    直接弄成数据不知道,学习一下
      

  2.   

    蠢办法 期待更好的
    String nameString = "<name>123</name><name>456</name><name>789</name><name>aaa</name><name>bbb</name>";
    String[]nameStrings =nameString.split("</name>");
    for(int i=0;i<nameStrings.length;i++){
    nameStrings[i]=nameStrings[i]+"</name>";
    }
    for(String name :nameStrings ){
    System.out.println(name);
    }
      

  3.   

    循环一下,用字符串的Split方法截取吗!
      也可以用正则表达式啊
      

  4.   

    [color=#ff0000]和大家分享一下我的做法:[color]
    import java.util.ArrayList;
    import java.util.List;
    import java.util.Scanner;public class Test { /**
     * @param args
     */
    public static void main(String[] args) {
    StringBuffer str = new StringBuffer(
    "<name>123</name><name>456</name><name>789</name><name>aaa</name><name>bbb</name>");
    int j = 0; String substr = ""; for (int i = 0; i < str.length() - 1; i++) {
    j = i + 2;
    substr = str.substring(i, j);
    if ("><".equals(substr)) {
    str.replace(i, j, ">,<");
    }
    }
    System.out.println(str); }}
      

  5.   

    运行的结果是:
    <name>123</name>,<name>456</name>,<name>789</name>,<name>aaa</name>,<name>bbb</name>
      

  6.   

    String time = "<name>123</name><name>456</name><name>789</name><name>aaa</name><name>bbb</name>";
    String regex = "<name>[^<]*</name>";
    Pattern p = Pattern.compile(regex);
    Matcher matcher = p.matcher(time);
    StringBuilder result = new StringBuilder();
    while(matcher.find()){
        if(result.length()>0){
    result.append(",");
        }
        result.append(matcher.group());
    }
    System.out.println(result.toString());
      

  7.   

    import java.util.ArrayList;
    import java.util.regex.Pattern;
    import java.util.regex.Matcher;
    public class sssss { public static void main(String[] args) { ArrayList list = new ArrayList();
    String str = "<name>123 </name> <name>456 </name> <name>789 </name> <name>aaa </name> <name>bbb </name>";
    Pattern p = Pattern.compile("<name>+[0-9a-zA-Z]+ </name>");
    Matcher m = p.matcher(str);
    int cnt = 0;
    while (m.find())
    {
    list.add(m.group());
    System.out.println(list.get(cnt));
    cnt++;
    }
    }}
      

  8.   

    代码import java.util.ArrayList;
    import java.util.regex.Pattern;
    import java.util.regex.Matcher;
    public class sssss { public static void main(String[] args) { ArrayList list = new ArrayList();
    String str = "<name>123 </name> <name>456 </name> <name>789 </name> <name>aaa </name> <name>bbb </name>";
    Pattern p = Pattern.compile("<name>+[0-9a-zA-Z]+ </name>");
    Matcher m = p.matcher(str);
    int cnt = 0;
    while (m.find())
    {
    list.add(m.group());
    System.out.println(list.get(cnt));
    cnt++;
    }
    }
    }运行结果:
    <name>123 </name>
    <name>456 </name>
    <name>789 </name>
    <name>aaa </name>
    <name>bbb </name>
      

  9.   


    ╔═╤═╤═╤═╤═╗
    ║ │ │[color=#FF0000]多

    ║ │ │
    ║ │ │
    ║ │ │
    ║ │ │
    ╚═╧═╧═╧═╧═╝
    [/color]
      

  10.   

    我觉得用xml解析器做比较好,如果以后有其他的信息也可以很容易加进去
      

  11.   

       while(str1.indexOf("</name>")!=-1){
        System.out.println(str1.substring(0,str1.indexOf("</name>")+"</name>".length()));
        str1 = str1.substring(str1.indexOf("</name>")+"</name>".length());
        }