java - 尝试解析某些 COLUMN 单元格为空的 csv 文件
问题描述
我正在尝试读取具有 6 列的 .csv 文件,但最后一列中的某些行是空单元格。
item1 2 4 125 200
item2 5 8 250 375
item3 2 3 125 200
item4 2 4 200 325 10
item5 1 2 325 400 10
item6 1 2 250 350 10
结果
row 0: item1
row 1: 2.0
row 2: 4.0
row 3: 125.0
row 4: 200.0
new --------: 0
row 0: item2
row 1: 5.0
row 2: 8.0
row 3: 250.0
row 4: 375.0
new --------: 0
row 0: item3
row 1: 2.0
row 2: 3.0
row 3: 125.0
row 4: 200.0
- Java 代码应该获取所有行,将每个值解析为双精度。
- 最后一列如果为空,则打印 0 值,否则解析最后一列值
问题:如何获取行的空单元格值并设置 int lastColEmpytyValue = 0;?
while(inputStream.hasNext()) {
String data = inputStream.nextLine(); // gets a while line .next gets next word i.e. ice. .nextLine get word with spaces i.e. ice cream
String[] row = data.split(",", -1); // regex - split line
System.out.println("row 0: " + row[0] );
System.out.println("row 1: " + Double.parseDouble(row[1] ));
System.out.println("row 2: " + Double.parseDouble(row[2]) );
System.out.println("row 3: " + Double.parseDouble(row[3]) );
System.out.println("row 4: " + Double.parseDouble(row[4]) );
if (row[5] == null || row[5].isEmpty() || row[5] == "") {
int row5;
row[5] = "0";
row5 = Integer.parseInt(row[5]);
System.out.println("new --------: " +row5);
} else {
System.out.println("row 5.....: " + row[5]);
}
}
解决方案
您只需更改行,因为我在您的示例数据中看不到“,”。
String[] row = data.split(",", -1);
类似于如果您的数据有制表符或空格作为分隔符。
//if you have "tabbed" separated data
String[] row = data.split("\t", -1);
// if you have "space" separated data
//String[] row = data.split(" ", -1);
推荐阅读
- arrays - 将 VBA 整数数组传递给 c# DLL int 数组
- string - 如何从声明性宏中返回新字符串?
- reactjs - 在 React 中使用 Jest 模拟 Axios - 未调用模拟函数
- mysql - SQL / MYSQL 如果一个或多个匹配则弹出整个集合
- android - Android - React-native:输出:错误:找不到资源样式/Theme.AppCompat.Light.NoActionBar
- javascript - DataTables - 以模态显示列数据
- typescript - 使用点符号无法访问的 Typescript 接口中使用字符串枚举的计算属性
- node.js - pdfmake 为“fs.createWriteStream”返回空白页
- excel - 有缺陷的 SUMPRODUCT/COUNTIF 公式:计数不正确
- powerbi - 使用传播过滤器将表联合到自身