【问题标题】:How to determine if strings are equal in Objective C?如何确定Objective C中的字符串是否相等?
【发布时间】:2012-04-11 12:32:28
【问题描述】:

我从 JSON 结果中读取了一个字符串,如下所示:

NSString *strResult = [[NSString alloc] initWithBytes:[data bytes] 
                                               length:[data length] 
                                             encoding:NSUTF8StringEncoding]; 

然后我尝试确定字符串是否等于值“N”

if ([strResult isEqualToString:@"N"])
{ 
  [lblImageOK setHidden:YES]; 
} 
else 
{ 
  [lblImageOk setHidden:NO]; 
}

if 语句总是返回 else 部分,即使结果是“N”。它们都具有相同的值,但语句总是返回 false。

【问题讨论】:

  • 您可以在 if 语句之前 NSLog(@"%@",strResult); 并将输出添加到您的问题中吗?
  • 把它设为NSLog(@"[%@] len=%d, strResult, [strResult length]); 以获得良好的衡量标准。
  • 正如 peterept 建议的那样,您几乎可以肯定有前导或尾随空格。
  • 这是我使用 NSLog 得到的结果:["N"] len=3

标签: objective-c c-strings


【解决方案1】:

我找到了一种清理字符串的方法,然后检查它们是否相等。

NSString *strResult = [[NSString alloc] initWithBytes:[data bytes] 
                                           length:[data length] 
                                         encoding:NSUTF8StringEncoding]; 

strResult = [strResult stringByReplacingOccurrencesOfString:@"\"" withString:@""];
strResult = [strResult stringByTrimmingCharactersInSet:[NSCharacterSet whitespaceCharacterSet]];

if ([strResult isEqualToString:@"N"])
{ 
  [lblImageOK setHidden:YES]; 
} 
else 
{ 
  [lblImageOk setHidden:NO]; 
}

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2013-02-10
    • 1970-01-01
    • 1970-01-01
    • 2016-08-10
    • 2012-01-22
    • 2013-04-08
    • 2011-02-14
    • 1970-01-01
    相关资源
    最近更新 更多