大家好,新年快乐!
我正在处理csv
文件,如下所示:
orange | red
blue | green
red | red
brown | brown
yellow | black
grey | pink
我的目标是扫描每一行并检查每一对是否由同一项构成。
我想打印包含不同商品的总行数。
在这种情况下,我们有4个。
我还要打印哪一行包含它们,以及各自的编号。
在这种情况下:
1 orange red
2 blue green
5 yellow black
6 grey pink
我在这里搜索过类似的问题,但我能找到的只是多个csv文件。
我正在使用Java ......从我迄今为止所理解的情况来看,一个良好的开端将是:
Scanner scanner = new Scanner(new File("path to my csv file"));
scanner.useDelimiter(";");
while(scanner.hasNext()){
// comparing items in rows
}
scanner.close();
我现在不知道在while循环中该做什么。
非常感谢!
答案 0 :(得分:2)
下面的实现应该有效,假设每行的两个项用分号和可选的空格分隔。如果不是这种情况,那么您可以更改用于拆分每一行的分隔符。
int total = 0;
int rowNum = 1;
while (scanner.hasNext()) {
// comparing items in rows
String[] parts = scanner.nextLine().split("\\s*;\\s*");
if (!parts[0].equals(parts[1])) {
System.out.println(rowNum + " " + parts[0] + " " + parts[1]);
++total;
}
++rowNum;
}
System.out.println("There were " + total + " rows where the two items were not equal.");