OC NSString 字符串操作详细解析

简书地址:http://www.jianshu.com/p/5b45ebea3f0f

在iOS开发中NSString被广泛的使用,系统中为NSString提供了很多实用的方法。具体如下:

  • 字符串大小写转换
//@property (readonly, copy) NSString *uppercaseString; 字符串全部转为大写
//@property (readonly, copy) NSString *lowercaseString; 字符串全部转为小写 
//@property (readonly, copy) NSString *capitalizedString;首字母大写其他转为小写
 NSString *string = @"abcdef";
 NSString *str = [string uppercaseString];//str = ABCDEF
 NSString *str1 = [str lowercaseString];//str1 = abcdef
 NSString *str2 = [string capitalizedString];//str2 = Abcdef

//- (BOOL)isEqualToString:(NSString *)aString;
        NSString *str1 = @"abcdef";
        NSString *str2 = [NSString stringWithFormat:@"abcdef"];
        if ([str1 isEqualToString:str2])//比较的是内容
        {
            NSLog(@"两个字符串的内容一样");
        }
        if (str1  == str2)//比较的是地址 (这两个字符串地址不一样)
        {
            NSLog(@"两个字符串的地址一样");
        }
  • 字符串内容比较
//- (NSComparisonResult)compare:(NSString *)string;大小写会区分比较
//- (NSComparisonResult)caseInsensitiveCompare:(NSString *)string; 忽略大小写比较
        NSString *str1 = @"abcdef";
        NSString *str2 = @"abdcef";
        switch ([str1 compare:str2])
        {
            case NSOrderedDescending:
            {
                NSLog(@"str1大于str2");//输出结果 c > d比较每个的ASCII值
            }
                break;
            case NSOrderedSame:
            {
                NSLog(@"str1等于str2");
            }
                break;
            case NSOrderedAscending:
            {
                NSLog(@"str1大于str2");
            }
                break;

            default:
                break;
        }
  • 字符串搜索
        //- (BOOL)hasPrefix:(NSString *)str;判断是否以str开头
        //- (BOOL)hasSuffix:(NSString *)str;判断是否以str结尾
        //- (NSRange)rangeOfString:(NSString *)searchString;判断字符串中是否包含searchString
        NSString *str1 = @"abcdef";
        if ([str1 hasPrefix:@"a"])
        {
            NSLog(@"str1 以a开头");
        }
        if ([str1 hasSuffix:@"f"])
        {
            NSLog(@"str1 以f结尾");
        }
        if ([str1 rangeOfString:@"bc"].location != NSNotFound)
        {
            NSLog(@"str1 包含abc  包含开始位置%lu 长度%lu", (unsigned long)[str1 rangeOfString:@"bc"].location, (unsigned long)[str1 rangeOfString:@"bc"].length);//包含开始位置1 长度2
        }
  • 字符串的截取
        //- (NSString *)substringFromIndex:(NSUInteger)from;从from的位置开始截取到最后
        //- (NSString *)substringToIndex:(NSUInteger)to;从字符串的开头截取到to的位置
        //- (NSString *)substringWithRange:(NSRange)range;
        NSString *string = @"abcdefgh";
        string = [string substringFromIndex:2];
        NSLog(@"%@", string);//cdefgh

        string = @"abcdefgh";
        string = [string substringToIndex:2];
        NSLog(@"%@", string);//ab

        //从头开始截取2个,输出余下的3个

        string = @"abcdefgh";
        NSRange rang ={2, 3};
        string = [string substringWithRange:rang];
        NSLog(@"%@", string);//cde
  • 字符串的替换、拼接、删除、插入和转换
 - 字符串的替换

 //- (NSString *)stringByReplacingOccurrencesOfString:(NSString *)target withString:(NSString *)replacement 将字符串中的target字符用replacement替换

NSString *string = @"abcd---efgh";
string = [string stringByReplacingOccurrencesOfString:@"-" withString:@"*"];
NSLog(@"string %@", string);//string abcd***efgh

NSRange rang = NSMakeRange(4,3);
NSString *string = @"abcd---efgh";
string = [string stringByReplacingCharactersInRange:rang withString:@"*"];
NSLog(@"string %@", string);//string abcd*efgh


 - NSString类型的替换

//+ (instancetype)stringWithFormat:(NSString *)format

NSString *str1 = @"apple";
NSString *str2 = @"orange";
NSString *str3 = [NSString stringWithFormat:@"%@,%@", str1, str2];//需不需要逗号看需求
NSLog(@"%@", str3);//apple,orange

//- (NSString *)stringByAppendingString:(NSString *)aString;将aString拼接到字符串后面 没有逗号

str3 = [str3 stringByAppendingString:str2];
NSLog(@"%@", str3);//apple,orangeorange

//- (NSString *)stringByAppendingFormat:(NSString *)format;将format拼接到字符串后面 format中的具体格式可以自己设置

str3 = [str3 stringByAppendingFormat:@"%@%@", str1, str2];//需不需要逗号看需求
NSLog(@"%@", str3);//apple,orangeorangeappleorange

 - NSMutableString的替换
//- (void)appendString:(NSString *)aString;
//- (void)appendFormat:(NSString *)format;

NSMutableString *string = [[NSMutableString alloc] init];
NSString *str1 = @"AAA";
NSString *str2 = @"BBB";
[string appendString:@"orange"];
[string appendString:@"apple"];
NSLog(@"string %@", string);//string orangeapple
[string appendFormat:@"%@%@", str1, str2];
NSLog(@"string%@", string);//stringorangeappleAAABBB

//- (void)setString:(NSString *)aString;将字符串替换成aString
[string setString:@"AAA"];
NSLog(@"string %@", string);//string AAA

 - NSMutableString的删除
 - 
 NSMutableString *string = [[NSMutableString alloc] init];
[string appendString:@"abcdefghijk"];
NSLog(@"string %@", string);

//- (void)deleteCharactersInRange:(NSRange)range;将字符串的range范围内的字符串全部删除

NSRange range = NSMakeRange(2, 3);
[string deleteCharactersInRange:range];
NSLog(@"string %@", string);

 - NSMutableString的插入

NSMutableString *string = [[NSMutableString alloc] init];
[string appendString:@"abcdefghijk"];
NSLog(@"string %@", string);//string abcdefghijk

//- (void)insertString:(NSString *)aString atIndex:(NSUInteger)loc;从字符串的loc位置后插入aString

[string insertString:@"AAA" atIndex:4];
NSLog(@"string %@", string);//string abcdAAAefghijk

 - NSMutableString的转换

NSMutableString *string = [[NSMutableString alloc] init];
[string appendString:@"abcdefghijk"];
NSLog(@"string %@", string);//string abcdefghijk

//- (void)replaceCharactersInRange:(NSRange)range withString:(NSString *)aString; 将字符串range范围内的字符串替换成aString        
NSRange range = NSMakeRange(2, 3);
[string replaceCharactersInRange:range withString:@"***"];
NSLog(@"string %@", string);//string ab***fghijk
  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值