1

私は問題ではないはずのこの問題を抱えています

私はこのコードを書きました

import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.ResultSet;
import java.sql.Statement;
import java.util.Scanner;

/**
 * @author ZEESHAN
 */
public class TestApps 
{
    /**
     * @param args the command line arguments
     */
    public static void main(String[] args) 
    {
        // TODO code application logic here
        Connection con;
        // Statement stmt;
        ResultSet rs;
        String str,str2,str3;
        try 
        {
            Class.forName("sun.jdbc.odbc.JdbcOdbcDriver");
            con=DriverManager.getConnection("jdbc:odbc:TestApp");

            Statement stmt =  con.createStatement();
            System.out.println("Connected");

            rs=stmt.executeQuery("SELECT Emp_Name,Emp_LastName FROM Table_1 WHERE Emp_Name = 'zeeshan' ");

            while(rs.next()) 
            {
                str = rs.getString("Emp_Name");
                str2 = rs.getString("Emp_LastName");
                String name,pass;    

                Scanner input = new Scanner(System.in);
                name = input.nextLine();
                pass = input.nextLine();

                if(name.equals(str) && pass.equals(str2) )
                {
                    System.out.println("CORRECT");
                }
                else
                {
                    System.out.println("INCORRECT");
                    System.out.println(""+name);
                    System.out.println(""+pass);
                    System.out.println(""+str);
                    System.out.println(""+str2);
                }
            }

            //  String name,pass;    

            /*   
            if(name.equals(str) && pass.equals(str2) )
            {
                System.out.println("Correct");
            }
            else
            {
                System.out.println("Incorrect");
            }
            */
        }
        catch (Exception ex)
        {
            System.out.println("Not connected");
            ex.printStackTrace();
        }
    }
}

すべてが正常に機能します。つまり、データベースとすべてです。データベース文字列と同じ答えを出しましたが、この結果はうまくいきません。また、すべての文字列が同じ答えであるという結果が出ましたが、それでも真の状態にならないのはなぜですか。コンソールで答えます。

RESULT:
 INCORRECT
 zeeshan
 ismail
 zeeshan   
 ismail  
4

4 に答える 4

2

strとstr2の値には末尾のスペースがあります。文字列を比較する前に、値にトリミングする必要があります。

str = str.trim();
str2 = str2.trim();
于 2012-12-04T08:46:34.607 に答える
0

あなたはtrim()メソッドを使用することを試みるべきです。

于 2012-12-04T08:48:22.857 に答える
0

このようにするのが最善です-

str = str.toUpperCase().trim();
str2 = str2.toUpperCase().trim();

比較します

if(str.equals(str2)){}

文字列比較を使用している場合は、必ず

  • 両方の文字列を同じケースに入れます
  • 両方の文字列をトリミングします
于 2012-12-04T08:59:03.587 に答える
0

はい、このエラーの原因は先頭と末尾のスペースです。

これらをstrおよびstr1と比較する前に、「name」および「pass」をトリムすることもできます。

name= name.trim();
pass=pass.trim();
于 2012-12-04T09:03:58.070 に答える