gpt4 book ai didi

java - 如何将文件读入二维数组,无论它们在 java 中是空格还是换行符分隔?

转载 作者:行者123 更新时间:2023-12-02 10:32:17 25 4
gpt4 key购买 nike

我有一些由整数组成的输入文件。其中一些输入文件的编号按一行组织,并用空格分隔。

1 2 3 4 5 6...

其他内容按换行符组织。


1
2
3
4
5
6
...

我想要做的是读取该文件目录中的每个文件,并将每个文件存储在一个可以对它们进行排序的二维数组中。在此示例代码中,fileArr 是文件数组,其中包含相关目录中的所有文件。 nums 是我试图存储它的二维数组,第一个括号 (nums[]) 代表文件,第二个数组 (nums[ ][]) 代表在其中找到的数据。 line 是一个字符串数组。下面的代码是我最接近让它工作的代码。当数据全部存储在一行中时,代码可以工作,如第一个示例所示,但在第二个示例中,每个单独的行都会生成一个单元素数组 line ,其中该行的编号为它,使得 nums[i][q] 最终仅成为一个元素。

    // Below is a code that reads all of the raw data into a 2D array
int[][] nums = new int[fileArr.length][];
for (int i = 0; i < fileArr.length; i++) {
fileRead = new Scanner(new BufferedReader(new FileReader(fileArr[i])));

while (fileRead.hasNextLine() != false) {
line = fileRead.nextLine().trim().split("\\s+");
}
nums[i] = new int[line.length];
for (int q = 0; q < line.length; q++) {
nums[i][q] = Integer.parseInt(line[q]);
}
}
// end block

我希望我解释得很好。基本上,我只是能够将文件中的数据存储在二维数组中,无论这些数字是垂直存储(换行符)还是水平存储(空格)。

最佳答案

只需使用 next() 而不是 nextLine() - 这是一个示例应用程序,它打印由任何空格分隔的所有“单词”,无论是空格还是换行符输入:

import java.util.Scanner;
import java.io.BufferedReader;
import java.io.InputStreamReader;
public class Test {
public static void main(String[] args) {
Scanner in = new Scanner(new BufferedReader(
new InputStreamReader (System.in)));
for(;;) {
System.out.println(in.next());
}
}
}

关于java - 如何将文件读入二维数组,无论它们在 java 中是空格还是换行符分隔?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/53543443/

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