OC-文字列の大文字と小文字の変換

2297 ワード

一般的な言語では大文字と小文字の変換にはデフォルトの関数がありますが、暇なときは大丈夫です.簡単な真似をして実現しました.
システム内のデフォルトの大文字と小文字の変換:
        NSString  *name=@"   -FlyElephant";
        NSString  *url=@"    :http://www.cnblogs.com/xiaofeixiang";
        NSLog(@"        :%@",[name lowercaseString]);
        NSLog(@"        :%@",[url uppercaseString]);


もし自分で実現するならば、ASCIIコードを考慮しなければならなくて、大文字と小文字の間の差は32で、Aは65で、aは97で、その他はこのように推測します:
-(NSString *)toLower:(NSString *)str{
    for (NSInteger i=0; i<str.length; i++) {
        if ([str characterAtIndex:i]>='A'&[str characterAtIndex:i]<='Z') {
            //A  65  a  97
            char  temp=[str characterAtIndex:i]+32;
            NSRange range=NSMakeRange(i, 1);
            str=[str stringByReplacingCharactersInRange:range withString:[NSString stringWithFormat:@"%c",temp]];
        }
    }
    return str;
}

-(NSString *)toUpper:(NSString *)str{
    for (NSInteger i=0; i<str.length; i++) {
        if ([str characterAtIndex:i]>='a'&[str characterAtIndex:i]<='z') {
            //A  65  a  97
            char  temp=[str characterAtIndex:i]-32;
            NSRange range=NSMakeRange(i, 1);
            str=[str stringByReplacingCharactersInRange:range withString:[NSString stringWithFormat:@"%c",temp]];
        }
    }
    return str;
}

呼び出すのも簡単です.
        NSStringUtil  *util=[[NSStringUtil alloc]init];
        NSLog(@"    :%@",[util toLower:name]);
        NSLog(@"    :%@",[util toUpper:url]);

効果は次のとおりです.