我有以下.csv文件:
B00987,58
B00567,43
B00343,59
B00653,25
B00757,31
B00876,40
B00421,62
B00568,78
B00826,79
B00126,93
B00862,62
B00999,12
B00237,68
B00762,85
B00864,49
我需要将所有B00000数字存储在数组中,以备后用。数组应如下所示:
Position 0 | B00987
Position 1 | B00567
Position 2 | B00343
Position 3 | B00653
....
Position 13 | B00762
Position 14 | B00864
文件路径为:
String filepath = "src\\marks.csv";
有人知道如何用Java做到这一点吗?谢谢
答案 0 :(得分:1)
您可以将Java Streams与Files.lines()
方法一起使用:
try (Stream<String> lines = Files.lines(Paths.get("marks.csv"))) {
String[] result = lines
.map(line -> line.split(","))
.map(items -> items[0])
.toArray(String[]::new);
} catch (IOException e) {
e.printStackTrace();
}
这会将所有行读取到流中,将每行除以,
并仅使用第一个元素。
答案 1 :(得分:0)
您仅以可预测的格式存储第一列,因此您可以在每行中查找,
分隔符的第一个匹配项。假设marks.csv
是您的JAR资源:
try (BufferedReader reader = new BufferedReader(new InputStreamReader(
getClass().getResourceAsStream("/marks.csv")))) {
String[] numbers = reader.lines()
.map(l -> l.substring(0, l.indexOf(',')))
.toArray(String[]::new);
}