我遇到了这个应该不是问题的问题
我写了这段代码
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
答案 0 :(得分:2)
str和str2的值有尾随空格。在比较字符串之前,您必须修剪为值。
str = str.trim();
str2 = str2.trim();
答案 1 :(得分:0)
你应该尝试使用trim()方法。
答案 2 :(得分:0)
最好是这样做 -
str = str.toUpperCase().trim();
str2 = str2.toUpperCase().trim();
并比较
if(str.equals(str2)){}
如果您正在使用字符串比较,请务必
答案 3 :(得分:0)
是的,导致此错误的是前导和尾随空格。
在将这些与str和str1进行比较之前,您还可以对“name”和“pass”进行修剪。
name= name.trim();
pass=pass.trim();