我试图找出 1 个字母的字符串是否出现在不同字符串的前 2 个字母中。我试图将字符串与 == 以及 isEqualToString NSString 方法进行比较。有谁知道为什么我的代码无法找到匹配项。它总是只返回 0。我希望这些方法返回 2,因为字母 b 位于单词中的第二个字母位置(第一个参数)并且应该匹配字母(第二个参数)
主要方法:
Finder *f = [[Finder alloc]init];
int position = [f findLetterLocation : @"abc" : @"b"];
NSLog(@"using == %d", position);
int position2 = [f findLetterLocation2 : @"abc" : @"b"];
NSLog(@"using isEqualToString %d", position);
查找器.m
-(int)findLetterLocation: (NSString*)word : (NSString*)letter{
NSRange MyOneRange = {1, 1};
NSRange MyTwoRange = {2, 1};
NSString *firstCharacter = [[NSString alloc] init];
NSString *secondCharacter = [[NSString alloc] init];
firstCharacter = [word substringWithRange:MyOneRange];
secondCharacter = [word substringWithRange:MyTwoRange];
if(firstCharacter == letter){
return 1;
}
if(firstCharacter == letter){
return 2;
}
return 0;
}
findLetterLocation2 与上面的方法完全相同,只是将 if 语句替换为以下语句:
if([firstCharacter isEqualToString: letter]){
return 1;
}
if([firstCharacter isEqualToString: letter]){
return 2;
}
输出是
2012-12-29 18:14:51.253 test[83101:303] using == 0
2012-12-29 18:14:51.255 test[83101:303] using isEqualToString 0
谢谢!