如何在NSString中反转字母大小写(Objective-C)

时间:2012-05-14 22:45:20

标签: objective-c nsstring

我想知道如何撤销NSString或NSMutableString中字符的大小写,忽略非字母字符。例如,“HeLLO jIM66”将成为“hEllo Jim66”。

我知道有关uppercaseString,lowercaseString和capitalizedString的信息但是我还没弄清楚如何反转字符串中所有字母的大小写。

感谢您的帮助!

1 个答案:

答案 0 :(得分:6)

只需遍历字符串中的所有字符。如果字符是大写的,请用小写字母替换它;如果它是小写的,请用大写字母替换它;否则,不管它。例如:

+ (NSString *) reverseCase:(NSString *)str
{
    int length = [str length];
    NSMutableString *result = [NSMutableString stringWithCapacity:length];

    for (int i = 0; i < length; i++)
    {
        unichar ch = [str characterAtIndex:i];
        if (islower(ch))
            ch = toupper(ch);
        else if (isupper(ch))
            ch = tolower(ch);
        [result appendString:[NSString stringWithCharacters:&ch length:1]];
    }

    return result;
}