如何将 CSV 文件转换为 java 中的整数数组?
How can I convert CSV file into an integer array in java?
我有一个包含整数的 CSV 文件:
我把它转换成字符串数组:
try (BufferedReader br = new BufferedReader(new FileReader("x.csv"))) {
String line;
while ((line = br.readLine()) != null) {
String[] values = line.split("\n");
x_values.add(Arrays.asList(values));
}
} catch (IOException e) {
e.printStackTrace();
}
输出是这样的:
output
但我想将值用作整数并求出它们的平均值。我该怎么做?
您将行解析为 String
值,而不是 Integers
。从你的形象来看,你的整数是指数表示法,这意味着你必须首先将它们解析为双精度,然后将它们转换为整数:
List<Integer> x_values = new ArrayList<>();
try (BufferedReader br = new BufferedReader(new FileReader("x.csv"))) {
String line;
while ((line = br.readLine()) != null) {
String[] values = line.split("\n");
List<Integer> intValues = Arrays.asList(values).stream()
.map(Double::parseDouble) // parse x.xxE+02 to xxx.0
.map(Double::intValue) // xxx.0 to integer xxx
.collect(Collectors.toList()); // back to List
x_values.addAll(intValues);
}
} catch (IOException e) {
e.printStackTrace();
}
您应该确保您的 csv 文件只包含整数,否则使用 List<Double> x_values
并跳过 int 转换。
我有一个包含整数的 CSV 文件:
我把它转换成字符串数组:
try (BufferedReader br = new BufferedReader(new FileReader("x.csv"))) {
String line;
while ((line = br.readLine()) != null) {
String[] values = line.split("\n");
x_values.add(Arrays.asList(values));
}
} catch (IOException e) {
e.printStackTrace();
}
输出是这样的: output
但我想将值用作整数并求出它们的平均值。我该怎么做?
您将行解析为 String
值,而不是 Integers
。从你的形象来看,你的整数是指数表示法,这意味着你必须首先将它们解析为双精度,然后将它们转换为整数:
List<Integer> x_values = new ArrayList<>();
try (BufferedReader br = new BufferedReader(new FileReader("x.csv"))) {
String line;
while ((line = br.readLine()) != null) {
String[] values = line.split("\n");
List<Integer> intValues = Arrays.asList(values).stream()
.map(Double::parseDouble) // parse x.xxE+02 to xxx.0
.map(Double::intValue) // xxx.0 to integer xxx
.collect(Collectors.toList()); // back to List
x_values.addAll(intValues);
}
} catch (IOException e) {
e.printStackTrace();
}
您应该确保您的 csv 文件只包含整数,否则使用 List<Double> x_values
并跳过 int 转换。