如何在java中将CSV文件转换为整数数组?
我有一个包含整数的CSV文件:如何在java中将CSV文件转换为整数数组?,java,arrays,csv,int,genetic,Java,Arrays,Csv,Int,Genetic,我有一个包含整数的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(Array
我将其转换为字符串数组:
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();
}
输出如下:
但我想用数值作为整数,求它们的平均值。我该怎么做呢?您正在将行解析为
字符串
值,而不是整数
。从您的图像判断,您的整数采用指数表示法,这意味着您必须首先将它们解析为double,然后将它们转换为整数:
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();
}
List x_values=new ArrayList();
try(BufferedReader br=new BufferedReader(new FileReader(“x.csv”)){
弦线;
而((line=br.readLine())!=null){
字符串[]值=行分割(“\n”);
List intValues=Arrays.asList(values).stream()
.map(Double::parseDouble)//将x.xxE+02解析为xxx.0
.map(Double::intValue)//xxx.0到整数xxx
.collect(Collectors.toList());//返回列表
x_值.addAll(intValues);
}
}捕获(IOE异常){
e、 printStackTrace();
}
您应该确保您的csv文件只包含整数,否则请使用
列出x_值
并跳过整数转换。这是整数的真实格式还是它们在电子表格中的显示方式?请将(正确的)示例值作为文本发布到您的问题中。首先修复您的代码。使用调试器。在代码中使用println来理解您在做什么。在“\n”上拆分一行没有多大意义。一旦你真的有了一个字符串数组,就把每个字符串解析成一个整数。你可以对单个字符串使用integer.parseInt(text)
,然后将它们收集到int[]
中。但总的来说,这似乎是一个糟糕的方法。去OOP,创建一个专用类,以逻辑方式表示每行的数据。给它一个从给定行创建它的parseLine
方法。然后只需阅读doinglistfoos=Files.lines(路径,get(“file.csv”)).map(Foo::parseLine).collect(Collectors.toList())代码>-现代Java,万岁。