java - 比较 csv 中的值并打印不同对的数量

标签 java csv

大家好,新年快乐!

我正在使用一个 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 循环中做什么。

非常感谢!

最佳答案

假设每行的两个项目都用分号和可选的空格分隔,下面的实现应该可以工作。如果情况并非如此,那么您可以更改用于分割每行的分隔符。

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.");

关于java - 比较 csv 中的值并打印不同对的数量,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41415279/

相关文章:

Python:将相同的字符串添加到每行的末尾

php - 将 .csv 读入 PHP 数组

java - java 的 sleep() 和 c 的 sleep() 之间有什么区别?

java - 不能在 Comparator<String> 中使用静态 List<String>

java - 如何在多个 pom 文件中查找库的使用位置

python - 如何获取 csv 内容的列表?

python - 在 python 中读取 csv 文件时出现错误 "no such file or directory"

java - OpenGL初始化方法

java - 在Java中运行bat文件并等待2

python - 如何切片列数未知的numpy数组?