String str ="#a~b~c~d#1~2~3~4#df~sd~w~e#";这个字符串 是3条数据,以“#”号分隔
每条数据中的字段以“~”分隔我想把每条数据的每个字段都放在list里面,怎么实现?

解决方案 »

  1.   

    public static void main(String[] args) throws EvalError {
    String str = "#a~b~c~d#1~2~3~4#df~sd~w~e#";
    str = str.replaceAll("^#?(.*?)#?$", "$1");
    String[] array1 = str.split("#");
    ArrayList<String>[] lists = new ArrayList[array1.length];
    for (int i = 0; i < array1.length; i++) {
    lists[i] = new ArrayList<String>();
    String[] array2 = array1[i].split("~");
    for (String s : array2)
    lists[i].add(s);
    }

    for (ArrayList<String> list : lists) {
    for (String s : list)
    System.out.printf("%s ", s);
    System.out.println();
    }
    }输出结果:
    a b c d 
    1 2 3 4 
    df sd w e 
      

  2.   

    比较傻的 办法    /**
         * @param args
         */
        public static void main(String[] args)
        {
            String str ="#a~b~c~d#1~2~3~4#df~sd~w~e#"; 
            String[] temp = str.replaceFirst("#", "").split("#");
            List list = new ArrayList();
            for(int i = 0; i < temp.length; i++)
            {
               String[] tmp =  temp[i].split("~");
               for(int j = 0; j < tmp.length; j++)
               {
                   list.add(tmp[j]);
               }
            }
            System.out.println(list.toString());    }
      

  3.   

    修改一下,把某句改成
    str = str.replaceAll("^#*(.*?)#*$", "$1");
      

  4.   

    另外一个某句改成
    String[] array1 = str.split("#+");主要是处理多个#的,如果保证格式很规范的话不需要
      

  5.   

    我自己也写了。不知道怎么忘list里面放package com.gao.test;public class Test2 { /**
     * @param args
     */
    public static void main(String[] args) {
    // TODO Auto-generated method stub
    String strResult = "#a~b~c~d#1~2~3~4#df~sd~w~e#";
    //取得返回结果的字符串有多少个#(数据)
    int dateCount = Test2.count(strResult, "#");
    //
    for(int i=1;i<dateCount;i++){
    //
    String strData = new String(strResult);
    //
    String strDate1[] = strData.split("#");
    // 取得某条数据的字符串中有多少个~
    int fieldCount = Test2.count(strDate1[i], "~");
    //
    for(int j =0;j<fieldCount+1;j++){
    //
    String strField = new String(strDate1[i]);
    //
    String strField1[] = strField.split("~");
    System.out.println(strField1[j]);
    }
    System.out.println(strDate1[i]);
    }
    }

    public static int count(String str,String point)
    {

    int count=0;

    String[] str1=new String[str.length()];
    for(int i=0;i<str1.length;i++)
    {
       str1[i]=str.substring(i,i+1);
       if(str1[i].equals(point))
       {
        count++;
       }
    }
    return count;
    }}
      

  6.   

    我想把值放在map里面,然后再放在list里面怎么实现
      

  7.   


    String str ="#a~b~c~d#1~2~3~4#df~sd~w~e#"; 
    String []str2 = str.split("#");
    List a =new List();
    int i;
    for (i=0;i<str2.length;i++){
    System.out.println(str2[i].replace("~", ""));
    a.add(str2[i].replace("~", ""));
    }
      

  8.   

    LS的有问题
    List a =new List();
      

  9.   

    import java.util.ArrayList;
    import java.util.List;
    public class Testweb1 {
    public static void main(String[] args) {
    String str ="#a~b~c~d#1~2~3~4#df~sd~w~e#"; 
    String[] str2 = str.split("\\#");
    //int n;
    List<String> list = new ArrayList<String>();
    for(int i=0;i<str2.length;i++) {
    System.out.println(str2[i]);
    String[] str3 = str2[i].split("\\~");
    for(int j=0;j<str3.length;j++) {

    list.add(str3[j]);
    }
    }
    for(int i=0;i<list.size();i++) {
    System.out.println(list.get(i));
    }
    }
        
    }
      

  10.   

    嗯,String[] array1 = str.split("#");
    分割应该可以的