首页 > 解决方案 > 运算符 && 未定义参数 String,JAVA 上的布尔值?

问题描述

我是一名初级 Java 开发人员,受托使用 Java 工具。

我有以下问题:

此工具接受输入 2 个具有特定字段的 CSV 文件。然后该工具会生成 2 个 csv 文件作为输出。第一和第二输出。两个输出文件具有相同的字段,第一个输出基于某些条件,第二个输出基于其他一些条件。

这 2 个输出文件包含一些数据的不同对帐。文件的一些记录具有相同的 ID。

例子:

record1 = ID10-name One, 
record2 = ID10-Blue Two, 
record3 = ID10-name Three

条件之一如下:

if (line.getName (). toLowerCase (). contains ("Blue" .toLowerCase ())
|| line.getName (). equalsIgnoreCase ("Orange")) {
return true;

实现这个的方法是一个布尔值,工具的所有逻辑都基于这个逻辑。工具逐行滚动/处理。

  Iterator <BaseElaboration> itElab = result.iterator ();
    while (itElab.hasNext ()) {
    BaseLine Processing = itElab.next ();

在第二个输出文件中,我找到了一个名称以 Blue 开头的行/记录。该工具正确地将该行插入到第二个输出文件中,因为所有具有名称 (getName) 的记录都带有 Blue 或橙色继续它我应该将所有行聚集在一起以获得相同的 ID,即使其中只有一个具有蓝色的名称。目前该工具执行此操作:

第一个文件输出

record1 = ID10-name 
record3 = ID10-name Three

第二个文件输出

record2 = ID10-Blue Two

预期的输出是

第一个文件输出

没有什么原因导致一组 ID 中的一个,与 Blue 的名称一致

第二个文件输出

record1 = ID10-name
record2 = ID10-Blue Two
record3 = ID10-name Three

我认为是这样的,但不起作用

if (line.getID() && line.getCollector().toLowerCase().contains("Blue".toLowerCase())
                    || line.getName().equalsIgnoreCase("black")) {
                return true;

如何在 java 行中对同一 ID 进行分组,并在 noutput 上进行排除

代码

输出

private void creaCSVOutput() throws IOException, CsvDataTypeMismatchException, CsvRequiredFieldEmptyException, ParseException {
        Writer writerOutput = new FileWriter(pathOutput);
        Writer writerEsclusi = new FileWriter(pathOutputEsclusi);

        StatefulBeanToCsv<BaseElaborazione> beanToCsv = new StatefulBeanToCsvBuilder<BaseElaborazione>(writerOutput)
                .withSeparator(';').withQuotechar('"').build();

        StatefulBeanToCsv<BaseElaborazione> beanToCsvEsclusi = new StatefulBeanToCsvBuilder<BaseElaborazione>(writerEsclusi)
                .withSeparator(';').withQuotechar('"').build();

        beanToCsv.write(CsvHelper.genHeaderBeanBase());
        beanToCsvEsclusi.write(CsvHelper.genHeaderBeanBase());

        Iterator<BaseElaborazione> itElab = result.iterator();
        while (itElab.hasNext()) {
            BaseElaborazione riga = itElab.next();

some set if and condition  ecc




esclusi.add(riga);
                itElab.remove();
            }
        }

        for (BaseElaborazione riga : result) {
            if(riga.getNota() == null || riga.getNota().isEmpty()) {
                riga.setNota(mapNota.get(cuvNota.get(riga.getCuv())));
            }
            beanToCsv.write(riga);
        }

        for (BaseElaborazione riga : esclusi) {
            if(riga.getNota() == null || riga.getNota().isEmpty()) {
                riga.setNota(mapNota.get(cuvNota.get(riga.getCuv())));  
        }
            beanToCsvEsclusi.write(riga);
        }

        writerOutput.close();
        writerEsclusi.close();
    }

esclusi的方法(2输出)

 private boolean checkPerimetroJunk(BaseElaborazione riga) {

        if (riga.getMercato().toLowerCase().contains("Energia Libero".toLowerCase())) {
            if (riga.getStrategia().toLowerCase().startsWith("STRATEGIA FO".toLowerCase())
                    || (riga.getStrategia().toLowerCase().contains("CREDITI CEDUTI".toLowerCase())
                    || (riga.getAttivita().equalsIgnoreCase("Proposta di Recupero Stragiudiziale FO")
                    ||  (riga.getAttivita().toLowerCase().contains("Cessione".toLowerCase())
                    || (riga.getLegalenome().equalsIgnoreCase("Euroservice junk STR FO")
                    || (riga.getLegalenome().equalsIgnoreCase("Euroservice_FO"))))))) {

                    onlyCUV=true; 
                }

                     else if(Collections.frequency(storedIds,riga.getCuv()) >= 1 ){
                 onlyCUV = true;
                   }

        return onlyCUV;
    }
         else if (riga.getMercato().equals("MAGGIOR TUTELA")) {

                    if(riga.getCollector().toLowerCase().contains("Cessione".toLowerCase())
                    || (riga.getCollector().equalsIgnoreCase("Euroservice_Fo"))
                    || (riga.getAttivitaCrabb().toLowerCase().contains("*FO".toLowerCase())
                    ||  (riga.getaNomeCluster().equalsIgnoreCase("Full Outsourcing")))) {


                onlyCUV = true;
            }

             else if(Collections.frequency(storedIds,riga.getCuv()) >= 1 ){
                 onlyCUV = true;

        }

        return onlyCUV;
    }
        return false;
    }

WHERE riga=lines cesione ecc 是有黑色 ecc 的人,它是一个例子 现在 MAGGIOR TUTELA 的部分正在工作,但 LIBERO 的部分不工作。我不知道为什么。

标签: java

解决方案


推荐阅读