gpt4 book ai didi

java - 在数组列表上使用分隔符

转载 作者:行者123 更新时间:2023-11-30 05:57:32 24 4
gpt4 key购买 nike

我有一个如下所示的 txt 文件:

1, 0, 0, 1, 1
1, 1, 1, 1, 0
0, 0, 1, 1, 1
1, 1, 1, 1, 1
0, 0, 0, 1, 0

我需要获得以下二维数组输出:

{1, 0, 0, 1, 1}
{1, 1, 1, 1, 0}
{0, 0, 1, 1, 1}
{1, 1, 1, 1, 1}
{0, 0, 0, 1, 0}

基本上我需要我的输出是一个double DATA[][],就像这个例子

double [][] DATA = new double [][]{
{1, 0, 0, 1, 1},
{1, 1, 1, 1, 0},
{0, 0, 1, 1, 1},
{1, 1, 1, 1, 1},
{0, 0, 0, 1, 0}
};

关于如何做到这一点有什么想法吗?这是我尝试过的:

ArrayList<String[]>  listOfLines = new ArrayList<String[]>();
String line = bufReader.readLine();
while (line != null) {
String[] fields = line.split(",");
listOfLines.add(fields);
line = bufReader.readLine();
// System.out.println(line);
}
for (String[] DATA : listOfLines) {
System.out.println(Arrays.toString(DATA));
}

最佳答案

在我看来,您可以使用 Double.parseDouble(String x) 方法来代替创建字符串数组。例如(未经测试,但您应该明白):

while (line != null) {
String[] fields = line.split(",");
ArrayList<Double> parsedFields = new ArrayList<Double>();
for (String x : fields) {
parsedFields.add(Double.parseDouble(x));
}
line = bufReader.readLine();
listOfLines.add(parsedFields); // you'll have to change listOfLines' type;
}

完成此操作后,如果您想要创建传统的二维数组,首先我们要计算出我们正在创建的数组的维度。注意:您可能需要包含某种错误检查(即确保每行具有相同数量的值、空等)。知道数组的维度后,您只需迭代并将值放入数组中,如下所示:

int rows = listOfLines.size();
int cols = listOfLines.get(0).size(); // this will fail if there is nothing in listOfLines!

Double[][] output = new Double[rows][cols];
for (int i = 0; i<rows; i++) {
for (int j = 0; j<cols; j++ {
output[i][j] = listOfLines.get(i).get(j);
}
}

关于java - 在数组列表上使用分隔符,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/52911002/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com