Как определить, является ли символ прописным или строчным?


Допустим, я извлекаю один символ из строки NS следующим образом:

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

Как узнать, является ли получаемый символ строчным или прописным?

Спасибо за любую помощь!

4 8

4 ответа:

BOOL isUppercase = [[NSCharacterSet uppercaseLetterCharacterSet] characterIsMember:[s characterAtIndex:0]];
unichar ch = [@"This is my String" characterAtIndex:0];

if (ch >= 'A' && ch <= 'Z') {
    // upper case
} else if (ch >= 'a' && ch <= 'z') {
   // lower case
}
Обратите внимание, что это работает только для английского алфавита.
NSString *firstChar = [NSString stringWithFormat:@"%c", [@"This is my String" characterAtIndex:0]];

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

Обратите внимание, что если символ не имеет вариантов верхнего/нижнего регистра (например, числа 1, 2 и т. д.), то isUpperCase всегда возвращает YES.

Я не знаю objective C, но вы можете использовать регулярное выражение. Если он соответствует [a-z], то это нижний регистр. Если он соответствует [A-Z], это верхний регистр.