字符串不能比较是否相等?还是我写的不对啊

来源:百度知道 编辑:UC知道 时间:2024/05/24 15:22:13
try {
Class.forName("sun.jdbc.odbc.JdbcOdbcDriver");
String url="jdbc:odbc:text";
Connection con = DriverManager.getConnection(url);
Statement s = con.createStatement();
ResultSet rs=s.executeQuery("select Id,Password from Card ");

while (rs.next()) {
if(((String)jTextField1.getText()==(String)rs.getString(1))&((String)jTextField2.getText()==(String)rs.getString(2)) ){
o= true;
System.out.print(o);

break;
}
else{
o=false;

}
}
rs.close();
s.close();
con.close();
} catch (ClassNotFoundException ex) {
ex.printStackTrace();
} catch (SQLException ex) {

String.equals(String str);
种这个,如果用“==”比较的是两个String变量是不是reference到一个object上,如果不是虽然他们各自指向的object的String value一样也还是返回false。
BTW:刚从C++转过来的??

String a = "ssss";
String b = "ssss";
这个时候a和b是常量副本,可以用 a==b来确定,也可以a=="ssss";
Stirng a = "ssss";
String b = "sssss".substring(0,4);
这个时候b是运行时生成,只能用对象比较的方法也就是equals
a.equals(b) == true
注意equals是对象操作,不是针对字符串的,你要考虑null的情况,如果a或b是null,那么会抛出一个java.lang.NoPointException(大概就是这么个东西吧)类