Java数据库编程-为什么不';t这些值“;相等;?
我正在为学校做一个项目,它需要一个非常基本的登录功能(没什么特别的,看看密码是如何以纯文本形式保存的)。我有一个测试数据库,并且已经彻底测试了所有被引用和从数据库中提取的值是否也可以正确显示。您将在代码中看到,被比较的每个变量的类型都是字符串类型。我的问题是,为什么变量userOut和un不相等?(我甚至试着对它们中的每一个单独使用.toString()方法,也试着一起使用,使它们“相等”)Java数据库编程-为什么不';t这些值“;相等;?,java,mysql,database,equality,Java,Mysql,Database,Equality,我正在为学校做一个项目,它需要一个非常基本的登录功能(没什么特别的,看看密码是如何以纯文本形式保存的)。我有一个测试数据库,并且已经彻底测试了所有被引用和从数据库中提取的值是否也可以正确显示。您将在代码中看到,被比较的每个变量的类型都是字符串类型。我的问题是,为什么变量userOut和un不相等?(我甚至试着对它们中的每一个单独使用.toString()方法,也试着一起使用,使它们“相等”) 如果(userOut==un){ 到if(userOut.equals(un)){ 有关=和.equal
如果(userOut==un){ 到
if(userOut.equals(un))
{
有关
=
和.equals()
的更多信息,请参阅,如果(userOut==un){
到if(userOut.equals(un))
{
有关
=
和.equals()
的更多信息,请参阅。如果要比较字符串,请尝试使用equals
而不是=
您还可以使用
equalsIgnoreCase
来避免区分大小写的问题如果要比较字符串,请尝试使用equals
而不是=
您还可以使用
equalsIgnoreCase
来避免区分大小写的问题除了像1
这样的原语之外,您还必须将值与java中的equals()
方法进行比较
所以在代码中这意味着:userOut.equals(un)
最终,您将得到:
if (userOut.equals(un)) {
System.out.println("Welcome " + un + "!");
}
如果有机会,您应该将已知的字符串
与输入进行比较,因为您可以避免NullPointerException
s
一个常见问题:
public void someMethod(String someParameter) {
if(someParameter.equals(MY_CONSTANT)) {
// ...
}
}
应将其重构为:
public void someMethod(String someParameter) {
if(MY_CONSTANT.equals(someParameter)) {
// ...
}
}
除了像1
这样的原语之外,还必须将值与java中的equals()
方法进行比较
所以在代码中这意味着:userOut.equals(un)
最终,您将得到:
if (userOut.equals(un)) {
System.out.println("Welcome " + un + "!");
}
如果有机会,您应该将已知的字符串
与输入进行比较,因为您可以避免NullPointerException
s
一个常见问题:
public void someMethod(String someParameter) {
if(someParameter.equals(MY_CONSTANT)) {
// ...
}
}
应将其重构为:
public void someMethod(String someParameter) {
if(MY_CONSTANT.equals(someParameter)) {
// ...
}
}
要在java中比较对象,请使用.equals()方法而不是“==”运算符
替换以下代码
if (userOut == un)
到
如果您想忽略该案例,请使用下面的方法
if (userOut.equalsIgnoreCase(un))
要在java中比较对象,请使用.equals()方法而不是“==”运算符
替换以下代码
if (userOut == un)
到
如果您想忽略该案例,请使用下面的方法
if (userOut.equalsIgnoreCase(un))
在Java中使用=
运算符时,您只需查看引用变量是否引用相同的字符串。因此,在您的情况下,这将始终计算为false
要简单地比较字符串,请尝试userOut.equals(un)
。这将检查字符串的实际内容,看看它们是否相等。如果相等,则返回true
有关更多信息,请查看:
在Java中使用=
操作符时,您只需查看引用变量是否引用相同的字符串。因此,在您的情况下,这将始终计算为false
要简单地比较字符串,请尝试userOut.equals(un)
。这将检查字符串的实际内容,看看它们是否相等。如果相等,则返回true
有关更多信息,请查看:
==用于客户端脚本(如javascript或jquery)。服务器端需要equals或equalsIgnoreCase。==用于客户端脚本(如javascript或jquery)。服务器端需要equals或equalsIgnoreCase。这是因为字符串是一个类,而不是一个数据类型。您实际上只是在比较两个类引用,而不是实际字符串。必须使用类设计器提供的equal()来比较字符串的两个实例的内容:
userOut.equals(un)
这是因为String是一个类,而不是数据类型。实际上,您只比较了两个类引用,而不是实际的字符串。必须使用类设计器提供的equal()来比较String的两个实例的内容:
userOut.equals(un)
始终使用.equals()
,而不是=
来比较字符串。始终使用.equals()
,而不是=
来比较字符串。不仅是字符串,应该(必须!)对所有类型的对象进行比较。不仅仅是字符串,应该(必须!)对所有类型的对象进行比较。