IOS———NSString

捡起去年学习的iOS,从基础开始,一步一步,完成它!

一、iOS之NSString

NSString主要是针对字符串的一套用法,主要功能有:

(1)字符串显示(直接显示,间接显示)

(2)字符串截取,拼接,替换,比较,分割,遍历,转换

1.字符串显示

//初始化 
//方法一:
NSString *astring= @"how are you";
NSLog(@"astring %@ ",astring);
NSLog(@"astring %@ %@",@"hi",astring);
//可变字符串创建:
NSMutableString *mstr1 = [[NSMutableString alloc] initWithFormat:@"zxcvbnm"];
NSMutableString *mstr2 = [NSMutableString stringWithFormat:@"asdfghjkl"];
[mstr1 insertString:@"1111" atIndex:1];//从第一个位置插入
NSLog(@"ms1 :%@",mstr1);//ms1 :z1111xcvbnm


// 设置新的字符串
[mstr3 setString:@"000000000"];
NSLog(@"new_mstr3:%@",mstr3);

//方法二:
//NSString * str =[[NSString alloc] initWithString:@"this is from initWithString function"];系统会显示此方法多余,改为第一种方法
//三、实例化
//1、initWithFormat是实例方法,只能通过一下方法调用,但是必须手动release来释放内存资源
NSString* str = [[NSString alloc] initWithFormat:@"%@",@"Hello World"];
//2、stringWithFormat是类方法,可以直接用调用以下方法,内存管理上是autorelease的,不用手动显式release
NSString* str = [NSString stringWithFormat:@"%@",@"Hello World"];

2.字符串截取

NSString *str1 = @"1234567";
NSLog(@"长度: %ld",str1.length);//(长度: 7)
NSLog(@"字符串对应下标:%c",[str1 characterAtIndex:2]);//(字符串对应下标: 3)
//截取指定位置的字符串(substringFromIndex:a)从a开始到字符串结束
NSLog(@"%@",[str1 substringFromIndex:2]);//(34567)
//从0开始截取到指定位置字符串(substringToIndex:a)从0开始到a结束,不包括a
NSLog(@"%@",[str1 substringToIndex:2]);//(12)
//截取指定范围字符串(NSMakeRange(a,b)从字符串左边数的a开始,到字符串从右边数的b结束)包括a,b
NSLog(@"%@",[str1 substringWithRange:NSMakeRange(2, 2)]);//(345)

3.字符串拼接

NSString *str3 = @"a";
NSString *str4 = [str3 stringByAppendingString:@"5"];
NSLog(@"%@",str4);//a5


NSString *str5 = [str4 stringByAppendingPathComponent:@"De"];
NSLog(@"%@",str5);//a5/De

NSString *str12 = [[NSString alloc] initWithFormat:@"%@%@",str10,str11];
NSLog(@"str12 :%@",str12);//str12 :aa5

4.字符串替换

NSString *str6 = @"哈哈,瞅你咋地";
//直接替换
NSString *str7 = [str6 stringByReplacingOccurrencesOfString:@"哈哈" withString:@"嘿嘿"];
NSLog(@"%@",str7);//嘿嘿,瞅你咋地
NSString *str8 = @"你在干嘛呢";
//范围替换stringByReplacingCharactersInRange:NSMakeRange(1, 3)从第1个字符到第3个字符(包括)替换
NSString *str9 = [str8 stringByReplacingCharactersInRange:NSMakeRange(1, 3) withString:@"不累"];
NSLog(@"%@",str9);//你不累呢

5.字符串比较

NSString *str11 = @"1";
NSString *str10 = @"123";
//判断字符串是否以abc开头
BOOL flag = [str10 hasPrefix:@"abc"];
NSLog(@"%zd",flag);//0
//判断字符串是否以3结尾
BOOL flag1 = [str10 hasSuffix:@"3"];
NSLog(@"%zd",flag1);//1
//str10是否包含str11
NSLog(@"%d",[str10 containsString:str11]);//1


//升降序比较
NSString *str1 = @"abcd";
    NSString *str2 = @"ABCD";
    NSComparisonResult result = [str1 compare:str2];
    // caseInsensitiveCompare 忽略大小写比较
    // NSComparisonResult result2 = [s7 caseInsensitiveCompare:s8];
   if (result == NSOrderedAscending) {
        NSLog(@"升序");
        } else if(result == NSOrderedSame) {
            NSLog(@"相同");
            } else if(result == NSOrderedDescending) {
                NSLog(@"降序");
                }

6.字符串分割

NSString *str12 = @"我,是,谁,我,在,哪";
NSArray *array = [str12 componentsSeparatedByString:@","];
    for (NSString *str in array) {
        NSLog(@"%@",str);
    }
    
//取出字符串"123|456|789|000"中的数字部分,组成一个新的字符串输出
NSMutableString *strm = [NSMutableString stringWithString:@"123|456|789|000"];//只有可变字符串有这个方法
[strm replaceOccurrencesOfString:@"|" withString:@"" options:NSLiteralSearch range:NSMakeRange(0, strm.length)];
NSLog(@"%@",strm);//123456789000

7.字符串遍历

    NSString *str13 = @"abc\n ddef \n 123";
    //根据\n一行一行的返回
    [str13 enumerateLinesUsingBlock:^(NSString * _Nonnull line, BOOL * _Nonnull stop) {
        NSLog(@"line:%@",line);
        /*返回结果:
        line:abc
        line: ddef
        line: 123
         */
    }];
    //用指定字符串分割字符串,返回一个数组
    NSString *str14 = @"1,2,3,4,5,6";
    NSArray *array1 = [str14 componentsSeparatedByString:@","];
    NSLog(@"array1:%@ %zd",array1,array1.count);
    /*返回结果:
     array1:(
     1,
     2,
     3,
     4,
     5,
     6
     ) 6
     */   
}

8.字符串转换

//1.大小写转换    
NSString *str15 = @"aABBCCbbaacc1234";
NSLog(@"大写:%@",[str15 uppercaseString]);//大写:AABBCCBBAACC1234
NSLog(@"小写:%@",[str15 lowercaseString]);//小写:aabbccbbaacc1234
NSLog(@"首字母变大写,其他为小写:%@",[str15 capitalizedString]);//首字母变大写,其他为小写:Aabbccbbaacc1234

//2.转为基本数据类型,只能是数字字符串可以转化
    NSString *str9 = @"1234";
    int value1 = [str9 intValue];
    float value2 = [str9 floatValue];
    double value3 = [str9 doubleValue];
    BOOL value4 = [str9 boolValue];
    NSLog(@"value1 = %d",value1);//value1 = 1234
    NSLog(@"value2 = %f",value2);//value2 = 1234.000000
    NSLog(@"value3 = %lf",value3);//value3 = 1234.000000
    NSLog(@"value4 = %d",value4);//value4 = 1

 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章