【问题标题】:String contains letters字符串包含字母
【发布时间】:2013-05-27 20:11:31
【问题描述】:

我想知道是否有办法检查字符串是否包含字母。

如果有NSString = @"street 12",我希望它返回YES 如果NSString = @"12.12,23.23" 我希望它返回NO

有没有苹果公司的方法可以解决这个问题,还是我必须自己做?

【问题讨论】:

    标签: ios methods nsstring


    【解决方案1】:

    这是一种方法:

    NSString *someString = ... // the string to check
    NSRange match = [someString rangeOfCharacterFromSet:[NSCharacterSet letterCharacterSet] options:0 range:NSMakeRange(0, someString.length)];
    if (match.location != NSNotFound) {
        // someString has a letter in it
    }
    

    【讨论】:

    • 请记住,您可以使用您想要允许的字符创建自己的字符集。
    【解决方案2】:
    NSCharacterSet *set = [NSCharacterSet characterSetWithCharactersInString:@"abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLKMNOPQRSTUVWXYZ"];
    
    if ([str rangeOfCharacterFromSet:set].location != NSNotFound) {
        return YES;
    }
    
    return NO;
    

    【讨论】:

    • 这可能符合也可能不符合 OP 的需求。 “字母”比 A-Z 和 a-z 多得多。有重音字母和其他字母表中的字母。
    • 当然。这仅在标准英文字符的假设下是正确的。感谢您的评论
    • @Arbitur 不要忘记考虑您的国际用户群。根据您检查的字符串,值可能包含希腊语、俄语、日语等字母。仅关注 A-Z 可能不合适。
    • 我完全同意@rmaddy。如果它满足您的需求,那就太好了,但要考虑到此实现的局限性。
    • 在我的情况下这会很好,因为它只会在瑞典使用,当然我在 NSCharacterSer 中添加了 åäö ;) 但代码看起来有点难看,抱歉:S
    猜你喜欢
    • 2012-09-07
    • 2015-01-04
    • 1970-01-01
    • 2019-03-09
    • 2011-07-11
    • 1970-01-01
    • 2014-11-06
    • 1970-01-01
    相关资源
    最近更新 更多