我想知道如何撤销NSString或NSMutableString中字符的大小写,忽略非字母字符。例如,“HeLLO jIM66”将成为“hEllo Jim66”。
我知道有关uppercaseString,lowercaseString和capitalizedString的信息但是我还没弄清楚如何反转字符串中所有字母的大小写。
感谢您的帮助!
答案 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;
}