2

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

我知道大写字符串、小写字符串和大写字符串,但我无法弄清楚如何反转字符串中所有字母的大写。

谢谢你的帮助!

4

1 回答 1

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;
}
于 2012-05-14T22:55:59.127 回答