繁体   English   中英

来自文本文件的Java 2D数组

[英]java 2D array from text file

我正在尝试将此input.txt转换为2D数组。 我尝试了几种不同的方法。 这是我的最新尝试,我似乎被困在这里...非常感谢您的帮助。

input.txt结构:SCI2000 / Science / 1200/10 / C->有23行和5列。 我还想为每列创建一个标题。

    FileReader fr = new FileReader("input.txt");
    BufferedReader br = new BufferedReader(fr);
    StringBuilder sb = new StringBuilder();
    String line = br.readLine();

    while (line != null) {
        sb.append(line);
        sb.append(System.lineSeparator());
        line = br.readLine();
    }
    String everything = sb.toString();
    String[][] input = new String[23][5];
    String[] tokens = everything.split("/");
    for(String str : tokens)
        System.out.print(str);

只是主要处理部分(未经测试):

int columns = 5; 
String[] row = String[columns];
int j = 0; 

while ((line = br.readline) != null) {
    row = line.split("/");
    for(int i=0; i<row.length; ++i) {
       input[j,i] = row(i);
    }
    ++j;
}
FileReader fr = new FileReader("input.txt");
BufferedReader br = new BufferedReader(fr);
String[][] input = new String[24][5]; // 1 row for title, 23 rows for data

// add title
input[0] = new String[]{"title1", "title1", "title1", "title1", "title1"};
String line = br.readLine();
int row = 1; // update here

while ( (line = br.readLine())!= null ) {
    input[row++] = line.split("/");
}

// print all data
for ( int i = 0; i < input.length; i++) {
    for ( int j = 0; j < input[i].length; j++ )
        System.out.print(input[i][j] + " ");

    //new line
    System.out.println();
}

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM