我想知道如何在 NSString 或 NSMutableString 中反转字符的大小写,忽略非字母字符。例如,“HeLLO jIM66”将变为“hEllo Jim66”。
我知道大写字符串、小写字符串和大写字符串,但我无法弄清楚如何反转字符串中所有字母的大写。
谢谢你的帮助!
我想知道如何在 NSString 或 NSMutableString 中反转字符的大小写,忽略非字母字符。例如,“HeLLO jIM66”将变为“hEllo Jim66”。
我知道大写字符串、小写字符串和大写字符串,但我无法弄清楚如何反转字符串中所有字母的大写。
谢谢你的帮助!
只需遍历字符串中的所有字符。如果一个字符是大写的,用小写字母代替;如果是小写字母,则替换为大写字母;否则,别管它。例如:
+ (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;
}