Matched String не собирается передавать оператор в условии if else java - PullRequest
0 голосов
/ 01 февраля 2019

Я пытаюсь проверить число файлов фиксированной длины с помощью базы данных, где, когда оно совпадает с числом, тогда оператор pass не выполняется в операторе if, однако он собирается использовать оператор else.Любое направление будет оценено.

Ниже приведен мой код:

static String ubservicesCount = "";

    String connectionUrl = "jdbc:sqlserver://"+strpServer+":"+strpPort+";databaseName="+strpDatabase+";IntegratedSecurity=true";

                // Declare the JDBC objects.  
                Connection con = null;  
                Statement stmt = null;  
                ResultSet rs = null;  

                Class.forName("com.microsoft.sqlserver.jdbc.SQLServerDriver");  
                con = DriverManager.getConnection(connectionUrl); 

                String SQL = strpQuery5+Qt+ProcessID+Qt;
                stmt = con.createStatement();  
                rs = stmt.executeQuery(SQL);  

                while (rs.next()) {
                    ubservicesCount = rs.getString(1);
                    System.out.println("UB servicesCount is " +ubservicesCount);
                }

                String st;
                BufferedReader Br = null;
                File objFile = new File(strPlanFile+NewFileNmae);
                Br = new BufferedReader(new FileReader(objFile));

                List<String> list = new ArrayList<String>();
                while ((st = Br.readLine()) != null) {

                    String arraylist = st;              

                    String RcdType = arraylist.substring(0, arraylist.length()-392);

                    list.add(RcdType);          

                }

                Set<String> unique = new HashSet<String>(list);
                for (String key : unique) {


                    if(key.trim().toString().equals("SALINE")){

                        System.out.println(key + ": " + Collections.frequency(list, key));

                        int fileCount = Collections.frequency(list, key);

                        if(ubservicesCount.trim().toString().equals(fileCount))

                            objReport.setValidationMessageInReport("PASS", "Flat File "+key+" count "+fileCount+" is Matched with Database ubdiagcodes Count "+ubservicesCount);                                                                  
                        else
                        {
                            objReport.setValidationMessageInReport("FAIL", "Flat File "+key+" count "+fileCount+" is not Matched with Database ubdiagcodes Count "+ubservicesCount);                

                        }                       
                    }                               
                }

                Br.close();             

После выполнения не удалось выполнить печать в инструкции else в моем отчете.Я отладил, где я вижу, что в операторе сравнения это соответствует количеству.Я не уверен, что мне здесь не хватает.

1 Ответ

0 голосов
/ 01 февраля 2019

Попробуйте это

if(ubservicesCount.trim().toString().equalsIgnoreCase(String.ValueOf(fileCount)))

Я думаю, проблема в том, что вы используете .equals и сравниваете объект String с int ...

ie

логический java.lang.String.equals (Object anObject)

Сравнивает эту строку с указанным объектом.Результат имеет значение true тогда и только тогда, когда аргумент не равен NULL и является объектом String, представляющим ту же последовательность символов, что и этот объект.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...