你可以尝试类似的东西:
if ([[s uppercaseStringWithLocale:[NSLocale currentLocale]] isEqualToString:s])
{
// ... s is uppercase ...
}
else
{
// ... s is not all uppercase ...
}
Run Code Online (Sandbox Code Playgroud)
有几种不同的方法可以解释您的问题,每个示例都只测试您的字符串,而无需创建新副本:
1)您希望确保字符串中的所有字母都是大写的(但仍允许使用其他字符,如标点符号,数字和空格).例:
NSCharacterSet *lowerCaseSet = [NSCharacterSet lowercaseLetterCharacterSet];
if ([myString rangeOfCharacterFromSet:lowerCaseSet].location == NSNotFound)
NSLog(@"String is in upper case.");
else
NSLog(@"String has invalid characters.");
Run Code Online (Sandbox Code Playgroud)
2)您希望确保字符串中的所有字符都是大写字符(并且不允许其他字符).例:
NSCharacterSet *invalidCharacterSet = [[NSCharacterSet uppercaseLetterCharacterSet] invertedSet];
if ([myString rangeOfCharacterFromSet:invalidCharacterSet].location == NSNotFound)
NSLog(@"String has only upper case characters.");
else
NSLog(@"String has invalid characters.");
Run Code Online (Sandbox Code Playgroud)
3)您希望确保字符串中的所有字符都是大写字符或空格(并且不允许其他字符).例:
NSMutableCharacterSet *allowedCharacterSet = [NSMutableCharacterSet uppercaseLetterCharacterSet];
[allowedCharacterSet formUnionWithCharacterSet:[NSCharacterSet whitespaceCharacterSet]];
NSCharacterSet *invalidCharacterSet = [allowedCharacterSet invertedSet];
if ([myString rangeOfCharacterFromSet:invalidCharacterSet].location == NSNotFound)
NSLog(@"String has only upper case characters and/or white space.");
else
NSLog(@"String has invalid characters.");
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
2623 次 |
| 最近记录: |