未为参数String,JAVA上的布尔值定义运算符&&?

时间:2019-01-17 15:49:35

标签: java

我是初级Java开发人员,受Java工具的委托。

我有以下问题:

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

这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 ();

在SECOND OUTPUT文件中,我找到了一条以Blue开头的名称的行/记录。该工具正确地将其插入并插入到第二个输出文件中,从而导致所有具有名称(getName)的记录,用蓝色或橙色继续 我应该将所有行都具有相同的ID,即使其中只有一行带有蓝色的名称。 目前,该工具可以执行此操作:

第一文件输出

record1 = ID10-name 
record3 = ID10-name Three

第二个文件输出

record2 = ID10-Blue Two

预期输出为

第一文件输出

没有任何原因导致ID组中的一个与蓝色同名

第二个文件输出

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;
    }

其中riga = lines cessione ecc是拥有黑人ecc的人 现在是MAGGIOR TUTELA正在工作的部分,但是没有在LIBERO的部分工作。我不知道为什么。

0 个答案:

没有答案