用split后,数组l[]的序号是一直从l[0]到l[44],还是每换一行后就清空序号?课程表:(一共45条)
周一/语文/语文/数学/数学/英语/英语/物理/物理
周二/生物/生物/地理/地理/语文/数学/英语/政治
周三/化学/化学/历史/历史/体育/体育/政治/数学
周四/语文/数学/英语/物理/化学/生物/历史/地理
周五/政治/物理/化学/数学/英语/英语/数学/语文
BufferedReader bufferedReader = null;
PrintWriter printWriter = null;
String[][] k=new String[5][9];
try {
bufferedReader = new BufferedReader(new FileReader("C:\\Users\\lenovo\\Desktop\\课程表.txt"));
} catch (FileNotFoundException e1) {
// TODO Auto-generated catch block
e1.printStackTrace();
}
try {
while ((m = bufferedReader.readLine()) != null) {
String[] l=m.split("/");
for(int i=0;i<=44;i++){
int j=i/9;
int x=i%9;
k[j][x]=l[i];
}
}
} catch (IOException e1) {
// TODO Auto-generated catch block
e1.printStackTrace();
}    

解决方案 »

  1.   

    貌似好像不清空,去看看api呗
      

  2.   

    你的循环每次只读取一行。再读取新的一行的时候,string数组对象l变了。每次循环他的长度只有9
      

  3.   

    BufferedReader bufferedReader = null;
    PrintWriter printWriter = null;
    String[][] k=new String[5][9]; 
    try {
    bufferedReader = new BufferedReader(new FileReader("D:\\课程表.txt"));
    } catch (FileNotFoundException e1) {
    // TODO Auto-generated catch block
    e1.printStackTrace();
    }
    String m="";
    int index=0;
    try {
    while ((m = bufferedReader.readLine()) != null) {
    String[] l=m.split("/");
    for(int i=0;i<=8;i++){
    //int j=i/9;
    int x=i%9;
    k[index][x]=l[i];
    }
    index++;
    }
    } catch (IOException e1) {
    // TODO Auto-generated catch block
    e1.printStackTrace();
    } 每读完一行  index++  ;来记录 下表值  这样循环就可以全部打印出来  代码我测试过了 可以的
      

  4.   

    你的逻辑有点问题的,帮你改了一下:public static void main(String[] args) {
    BufferedReader bufferedReader = null;
    PrintWriter printWriter = null;
    String[][] k = new String[5][9];
    try {
    bufferedReader = new BufferedReader(new FileReader(
    "D:\\workspace\\test\\src\\ttt\\day.txt"));
    } catch (FileNotFoundException e1) {
    // TODO Auto-generated catch block
    e1.printStackTrace();
    }
    String line = null;
    int day = 0;
    try {
    while ((line = bufferedReader.readLine()) != null) {
    String[] l = line.split("/");
    for (int i = 0; i < 9; i++) {
    k[day][i] = l[i];
    }
    day++;
    }
    } catch (IOException e1) {
    e1.printStackTrace();
    }
    }