java检查csv文件中的给定字符串

时间:2017-07-30 09:01:52

标签: java

我有一个csv文件格式如下:

enter image description here

我有另一个csv文件,其列数和行数相同。

enter image description here

我需要检查文件1是否与文件2具有相同的值(值[0]),如果没有从文件2复制值。

下面是我编写的代码,但在检查时,如果文件1的第一行值不等于该行,我需要去检查文件2的下一行而不退出if语句。

while ((line = br4.readLine()) != null){
      while ((line5 = br5.readLine()) != null){
             String[] values = line.split(",");
             String[] values5 = line5.split(",");
             fw5.append("0").append('\n');
             String comp2 = values[0];
             String comp1 =  values5[0];

             if (values5[0] == null ? values[0] == null : values5[0].equals(values[0]))
                    {
                    fw6.append(values[0]).append("mad men ").append('\n');
                    }                     
              else if ( values5[0] == null ? (values[0]) != null : !values5[0].equals(values[0])){
                        System.out.println("value is " +values5[0]);
                       fw6.append(values5[0]).append("mad women").append('\n');
                       fw6.flush();
                    } 
                      break; 
                    }       
                }

1 个答案:

答案 0 :(得分:0)

您正面临一个典型的新手问题:抽象不足。

您尝试用一种方法解决整个问题:改为创建有用的抽象。像这样:

  • 首先创建一个表示该行数据的类。您可以将字符串(一行的内容)传递给构造函数。然后该类拆分字符串并将所有条目放入有意义的命名字段(而不是使用一个名为values的数组,它不会说任何内容)。
  • 然后你向该类添加方法来比较类的两个实例(可以是equals方法或你自己定义的东西)。
    • 在完成所有这些工作时,您会在编写代码时继续测试代码。
  • 然后,当您可以解析该行文本并根据需要进行比较时 - 然后添加代码以从文件中读取行。您可以阅读所有行,创建对象并根据需要更新它们。
  • 最后编写将更新的对象写回文件的代码。

长话短说:把你的大问题分成小问题并一个接一个地解决。