如何检查 NSString = 特定字符串值?

发布于 2024-12-02 13:19:44 字数 143 浏览 0 评论 0 原文

您好,如果您可以检查 NSString 是否等于特定值(例如人名),我很受伤?

我正在思考

if (mystring == @"Johns"){
    //do some stuff in here
}

Hi I am woundering if you can check to see if a NSString equals a specific value say for instance a name of a person?

I am thinking along the lines of

if (mystring == @"Johns"){
    //do some stuff in here
}

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(2

罪歌 2024-12-09 13:19:44
if ([mystring isEqualToString:@"Johns"]){
    //do some stuff in here
}
if ([mystring isEqualToString:@"Johns"]){
    //do some stuff in here
}
撩心不撩汉 2024-12-09 13:19:44

在某些情况下,您可能需要使用以下另一种方法:

NSArray * validNames = @[ @"foo" , @"bar" , @"bob" ];

if ([validNames indexOfObject:myString].location != NSNotFound) 
{
    // The myString is one of the names in the valid names array
}

或者,如果数组中有大量名称,您可以使用 NSSet,因为查找对象比在数组中更快((O(Log N) vs O(N ))

NSSet * validNamesSet = [NSSet setWithArray:validNames];

if ([validNamesSet containsObject:myString]) 
{
    // This is faster than indexOfObject for large sets
}

这些方法之所以有效,是因为 NSSetNSArray 使用 isEqual: 它将调用 isEqualToString: 用于 NSString 实例。

Here is another method you might want to use in some circumstances:

NSArray * validNames = @[ @"foo" , @"bar" , @"bob" ];

if ([validNames indexOfObject:myString].location != NSNotFound) 
{
    // The myString is one of the names in the valid names array
}

Or if you have a large amount of names in the array you could use a NSSet, since finding an object is faster than in an array ((O(Log N) vs O(N))

NSSet * validNamesSet = [NSSet setWithArray:validNames];

if ([validNamesSet containsObject:myString]) 
{
    // This is faster than indexOfObject for large sets
}

These methods work because NSSet and NSArray use isEqual: which will call isEqualToString: for NSString instances.

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文