0

可能重复:
如何比较 Java 中的字符串?
Java String.equals 与 ==

我是 Selenium 和 Java 的新手。

我已尝试以下方法将姓氏的字段值与我提供的字段值进行比较。

String lastname=selenium.getValue("//*[@id='lastName']");
System.out.println(lastname);
assertTrue (lastname == "xxx");

它一直在失败。

只是试图在 Eclipse 的帮助下更改最后一行(只是反复试验)

assertTrue("lastname.equals("xxx")); 

它工作正常......为什么它在第一种情况下失败了?== 不允许比较字符串?

4

5 回答 5

2

简短的回答:==检查相同的对象.equals检查相同的值。

更多信息在如何比较 Java 中的字符串?

于 2013-01-03T08:50:30.530 回答
0

equals函数检查lastname. ==运算符检查对对象的引用是否相等。

于 2013-01-03T08:50:43.027 回答
0

正如您所猜测的,您必须使用 equals() 将字符串与 Java 进行比较。

于 2013-01-03T08:51:05.490 回答
0

当您使用字符串时,您实际上是在比较指针(或真正的引用相等) 。==换句话说,您正在测试两个对象是否相同,而不是对象的内容

于 2013-01-03T08:51:18.407 回答
0

为了比较字符串的相等性,我们使用 equals() 方法。java中有两种比较方式。一个是“==”运算符和另一个“equals()”方法。"==" 比较字符串对象的引用值,而 equals() 方法存在于 java.lang.Object 类中。此方法比较字符串对象的内容。

于 2013-01-03T08:52:00.307 回答