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

 

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