有个数据 比如    ;B100101/01/2007 J200102/03/2008;第一个Array
B1001是书号,后面01/01/2007是日期, 我已经用split(";")把它分开,这个单独的数据记录两本书的情况第二个Array
现在我想用split(" ")把书号和日期在分开,存到第二个Array里面这个嵌套该怎么弄?

解决方案 »

  1.   

    String [] str=str1.split(";");
    List list=new ArrayList();
    for(int i=0,l=str.lenght;i<l;i++)
    {
       String [] str2=str[i].split(" ");
       for(int j=0,len=str2.lenght;j<len;j++){
         list.add(str2[j].subString(0,5));
         list.add(str2[j].subString(5,str2.lenght));
       }
    }
      

  2.   


    /**
     * 
     */
    package com.sysdynamic.test;import java.util.ArrayList;/**
     * @author Andy Yang
     * 
     */
    public class ArrayTest { static String str = ";B100101/01/2007 J200102/03/2008;"; public ArrayTest() { } public static void print() {
    String[] arr = str.split(";");
    for (int i = 0; i < arr.length; i++) {

    if (arr[i].length()>0) {
    String subStr = arr[i];
    String[] subArrs = subStr.split(" ");
    for (String subArr : subArrs)
    System.out.println(subArr);
    }
    } } public static void main(String[] args) { print();
    }}
      

  3.   

    感谢楼上,开始我也这么写,可是不对。
    Member类我已经写好
    这是读取的文件。
    Jo Blow;100340;B100101/10/05 J123429/09/05
    James Johns;123456;B121225/09/05 J121225/09/05;3我的代码:public Member[] membersReadFile() throws FileNotFoundException, IOException
         {
             BufferedReader inputStream = null;
             inputStream = new BufferedReader(new FileReader ("members.txt"));
                String line;
                line = inputStream.readLine();
                while (line != null)
                {                
                    String[] memberParts = line.split(";");
                    if (memberParts.length == 4)
                    {
                           memberList[memberCount] = new Member(memberParts[0], Integer.parseInt(memberParts[1]), memberParts[2], Integer.parseInt(memberParts[3]));     //memberParts[0]是姓名, Integer.parseInt(memberParts[1])是ID号, memberParts[2]借过的书单子, Integer.parseInt(memberParts[3]),借书交的费用               
                        }
                        else
                        {
                            memberList[memberCount] = new Member(memberParts[0], Integer.parseInt(memberParts[1]), memberParts[2]);     ////memberParts[0]是姓名, Integer.parseInt(memberParts[1])是ID号, memberParts[2]借过的书单子,没Integer.parseInt(memberParts[3])是指费用为0.
                        }
                    memberCount ++;
                    
                    由于书单是几本书在一起的,中间有空格连着,我想用split(" ")把每个书单分开,不在一行显示。
                    List list = new ArrayList();
                    String[] breakParts = memberParts[2].split(" ");
                        for (int i=0; i<breakParts.length; i++)
                        {
                            list.add(breakParts[i].subString(0,5));
                            list.add(breakParts[i].subString(5,str2.lenght));
                        }
                    // 我想可不可以在这里先不要加list.add()? 只是分开?我试了不成功。              line = inputStream.readLine();
                  
                }            inputStream.close();
                return memberList;
            }
      

  4.   

    如果只是在memberCount ++; 下面加一行 String[] breakParts = memberParts[2].split(" "); 是不行的吧?
      

  5.   

    关注下 组成字符串 再用split拆分