检查字符串中是否所有字符都是大写的 - Obj C.

时间:2014-03-01 08:03:23

标签: objective-c string

我知道我可以检查字符串是否包含大写字母但在Objective-C中是否有一些内置函数来检查所有字符是否都是大写字母?我想避免遍历每个字符以查看它是否包含一个小写字母,然后如果它包含一个字符就会中断循环,因为这会占用更多内存并占用更多时间。时间是一个约束,因为我必须处理数千个字符串。

4 个答案:

答案 0 :(得分:5)

考虑到您的问题,可能会采用其他方法:使用NSString rangeOfCharactersFromSet:传递NSCharacterSet的{​​{1}}。如果这找到任何东西,那么字符串不是全部大写。它是一个单行表达式,就像其他当前答案一样,但不涉及创建字符串的大写副本,适用于所有Unicode字母。

答案 1 :(得分:1)

试试这个

 NSString * myString;

    [myString.uppercaseString isEqualToString:myString];

答案 2 :(得分:0)

[your_string.uppercaseString isEqualToString:your_string];

如果你需要处理很多字符串,特别是长字符串可能会跟随代码会更快

// In case you need process a lo of strings this set should be initialized before loop!
NSCharacterSet *set = [NSCharacterSet lowercaseLetterCharacterSet];

// check for allowed characters
BOOL isValid = ([string rangeOfCharacterFromSet:set].location == NSNotFound);

答案 3 :(得分:0)

@implementation NSString (uppercaseOnly)

 - (BOOL) allUpperCase {
return [self rangeOfCharacterFromSet:[[NSCharacterSet upperCaseLetterCharacterSet] invertedSet]].location == NSNotFound;
}