文字以外の文字を無視して、NSStringまたはNSMutableStringの文字の大文字と小文字を逆にする方法を考えていました。たとえば、「HeLLOjIM66」は「hElloJim66」になります。
私はuppercaseString、lowercaseString、capitalizedStringについて知っていますが、文字列内のすべての文字の大文字化を元に戻す方法を理解できていません。
ご協力いただきありがとうございます!
文字以外の文字を無視して、NSStringまたはNSMutableStringの文字の大文字と小文字を逆にする方法を考えていました。たとえば、「HeLLOjIM66」は「hElloJim66」になります。
私はuppercaseString、lowercaseString、capitalizedStringについて知っていますが、文字列内のすべての文字の大文字化を元に戻す方法を理解できていません。
ご協力いただきありがとうございます!
文字列内のすべての文字を反復処理するだけです。文字が大文字の場合は、小文字に置き換えます。小文字の場合は大文字に置き換えます。それ以外の場合は、放っておいてください。例えば:
+ (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;
}