如何从文件中读取输入并将其保存到数组中? 例如,该文件包含:
2
1 1 2 3
2 4 5
其中第一个数字(2)表示需要的数组数。 第二行中的第一个数字是数组ID,后跟数组中的任何数字(1 2 3)。对于第三行也是如此,因此数组2应包含4和5。
所以两个数组应该是:
array1:[1] [2] [3] array2:[4] [5]
请Java!谢谢!答案 0 :(得分:1)
您可以将所有数字存储在int数组的数组中:
public static void main(String[] args) {
try (BufferedReader reader = new BufferedReader(new FileReader("c:\\temp\\text.txt"))) {
int numberOfArrays = Integer.parseInt(reader.readLine());
int[][] arrays = new int[numberOfArrays][];
int i = 0;
while (i < numberOfArrays) {
String line = reader.readLine();
if (line.isEmpty()) {
continue;
}
String[] parts = line.split(" ");
int[] lineNumbers = new int[parts.length - 1];
// is "array id" really necessary? i am just ignoring it.
for (int j = 0; j < lineNumbers.length; j++) {
lineNumbers[j] = Integer.parseInt(parts[j + 1]);
}
arrays[i++] = lineNumbers;
}
} catch (IOException e) {
throw new RuntimeException(e);
}
}
答案 1 :(得分:0)
我建议使用java8。读取文件的所有行变得容易。转换等可以通过流轻松解决。
未经测试的示例代码:
private static int[][] read() {
Path path = Paths.get("c:/temp", "data.txt");
try (Stream<String> lines = Files.lines(path)) {
return lines
// remove first line
.skip(1)
// convert line to array
.map(l -> l.split(" "))
// remove first colum
.map(a - > Arrays.copyOfRange(a, 1, a.length))
// convert to array
. collect(Collectors.toArray());
}
}