小编典典
你可以用来Files#readAllLines()将文本文件的所有行都放入List。
for (String line : Files.readAllLines(Paths.get("/path/to/file.txt"))) {
// ...
}
教程:基本I / O>文件I / O>读取,写入和创建文本文件
你可以用来基于正则表达式String#split()拆分a String部分。
for (String part : line.split("\\s+")) {
// ...
}
教程:数字和字符串>字符串>操纵字符串中的字符
你可以使用Integer#valueOf()将转换String为Integer。
Integer i = Integer.valueOf(part);
教程:数字和字符串>字符串>在数字和字符串之间转换
你可以使用List#add()将元素添加到中List。
numbers.add(i);
教程:接口>列表接口
因此,简而言之(假设文件没有空行,也没有尾随/前导空格)。
List numbers = new ArrayList<>();
for (String line : Files.readAllLines(Paths.get("/path/to/file.txt"))) {
for (String part : line.split("\\s+")) {
Integer i = Integer.valueOf(part);
numbers.add(i);
}
}
如果你碰巧已经使用Java 8,那么你甚至可以为此使用Stream APIFiles#lines()。
List numbers = Files.lines(Paths.get("/path/to/test.txt"))
.map(line -> line.split("\\s+")).flatMap(Arrays::stream)
.map(Integer::valueOf)
.collect(Collectors.toList());
2020-02-29