0

我有一些有效的代码如下:

String a;
String b;
a = get_string_from_complex_procedure_1();
b = get_string_from_complex_procedure_2();
if (a != b)
{
    put_up_error_dialog("["+a+"] != ["+b+"]");
}

代码的设计使得 a 和 b最终应该是相同的,事实上大多数时候它们是相同的,但偶尔我会出现错误对话框。但令人困惑的是,当对话框报告时,这两个字符串对我来说似乎相同。我想知道什么样的事情会导致这个问题?

4

4 回答 4

5

像这样重写:

String a;
String b;
a = get_string_from_complex_procedure_1();
b = get_string_from_complex_procedure_2();
if (!a.equals(b))
{
    put_up_error_dialog("["+a+"] != ["+b+"]");
}

==and!=运算符比较引用,而不是值。

于 2012-09-07T09:52:10.477 回答
1

您不能在字符串上使用==和。!=要比较两个字符串,请使用a.equals(b) and !a.equals(b)

于 2012-09-07T09:52:42.340 回答
0

使用==!=在字符串比较引用(内存位置)的情况下,最好使用equals()方法。

于 2012-09-07T09:53:38.237 回答
0

采用

       a.equals(b); or  a.equalsIgnoreCase(b) to compare String. 
于 2012-09-07T09:54:56.240 回答