两个字符串的比较失败

时间:2012-02-17 03:27:04

标签: objective-c string comparison

我对两个明显相同的字符串进行了比较。不幸的是,我的if子句没有按预期工作:

NSLog(@"%@ == %@ ?",strippedString1,strippedString2);

if (strippedString1 == strippedString2) {
    [_newBuild setTextColor: [NSColor greenColor] ]; 
    [_OldBuild setTextColor: [NSColor greenColor] ]; 
}

这是我的NSLog输出:Build:2A12-046 == Build:2A12

即使逐字节比较也表示两个字符串相同:enter image description here

任何线索?

4 个答案:

答案 0 :(得分:3)

使用==比较指针地址,比较可以使用的字符串的内容:

 [strippedString1 isEqualToString: strippedString2];

答案 1 :(得分:0)

我认为对于String,你应该使用(这是Java).equals()或同等的。

答案 2 :(得分:0)

您无法将两个NSStrings与==运算符进行比较,而是使用

[strippedString1 isEqualToString:strippedString2];

答案 3 :(得分:0)

重要部分:您打算使用isEqualToString

使用==将检查指针是否相等,即它会告诉您比较的两个对象实际上是否是同一个实例。

相反,我认为你的意思是检查内容是否相同,但当你知道这两个对象是字符串时,你会想要使用isEqualToString,因为它比isEqual快得多。