8

假设我从 NSString 中提取单个字符,如下所示:

[@"This is my String" characterAtIndex:0]

如何确定我得到的字符是小写还是大写?

感谢您的建议!

4

4 回答 4

34
BOOL isUppercase = [[NSCharacterSet uppercaseLetterCharacterSet] characterIsMember:[s characterAtIndex:0]];
于 2011-06-15T10:07:38.907 回答
5
unichar ch = [@"This is my String" characterAtIndex:0];

if (ch >= 'A' && ch <= 'Z') {
    // upper case
} else if (ch >= 'a' && ch <= 'z') {
   // lower case
}

请注意,这仅适用于英文字母。

于 2011-06-15T10:10:43.540 回答
2
NSString *firstChar = [NSString stringWithFormat:@"%c", [@"This is my String" characterAtIndex:0]];

BOOL isUpperCase = [firstChar isEqualToString:[firstChar uppercaseString]];

请注意,如果字符没有大写/小写变体(如数字 1、2 等),则 isUpperCase 始终返回 YES。

于 2014-05-21T04:26:10.607 回答
-1

我不知道目标 C,但你可以使用正则表达式。如果匹配 [az],则为小写。如果匹配 [AZ],则为大写。

于 2011-06-15T10:06:58.230 回答