NSString的簡單介紹及經常使用方法總結

1.NSString的介紹編程

  • NSString自己是一個字符串類,繼承於NSObject,文字內容通常都用NSString來表示。
  • 一個NSString對象就表明一個字符串。

2.NSString的初始化api

  •  直接建立字符串:
  • NSString *str = @"我是一個字符串";

    這是一個常量字符串,值不能修改。數組

  • 格式化(拼接)字符串(堆區):StringWithFormat

           第一種方式:框架

  • NSString *str1 = [NSString StringWithFormat:@"這是一個拼接字符串"];

           第二種方式:this

  • int age = 20;
    NSString *str1 = @"我今年";
    NSString *str2 = @"歲了";
    NSString *str2 = [NSString stringWithFormat:@"%@%d%@",str1,age,str2];

            能夠拼接接多個參數spa

  • 轉化C語言字符串:stringWithUTF8String
    char *s = "c字符串轉換";
    NSString *str = [NSString stringWithUTF8String:s];
    NSLog(@"%@",str);

    直接printf("%s",s)是不支持的。code

3.NSString字符串的比較orm

  • 兩個字符串的內容相同就返回YES, 不然返回NO :isEqualToString對象

    NSString *str1 = @"this is b string";        
    NSString *str2 = @"this is a string";
    BOOL isSame = [str1 isEqualToString:str2];        
    NSLog(@"isSame - %d",isSame);

     

  • 比較兩個字符串內容的大小 :compare繼承

    NSString *str1 = @"this is b string";        
    NSString *str2 = @"this is a string";
    NSLog(@"compare - %ld",(long)[str1 compare:str2]);

    字符串的比較是依次比較每一個字符的ASCII值,只要有一個字符比較出結果就中止比較;返回(NSComparisonResult)做爲比較結果 ;NSComparisonResult是一個枚舉,只有三個值,若是左邊<右邊,返回-1;若是左邊>右邊,返回1;若是相等,返回0。

  • 字符串忽略大小寫的比較:caseInsensitiveCompare

    NSString *str1 = @"this is b string";
    NSString *str2 = @"this is B string";
    NSLog(@"compare - %ld",(long)[str1 caseInsensitiveCompare:str2]);

    因爲忽略大小寫,因此返回值爲0,str1和str2相同。

4.NSString大小寫處理

  • 小寫變大寫:uppercaseString
    NSString *str1 = @"abcdefgh";
    NSString *str2 = [str1 uppercaseString];

    uppercaseString - 是把小寫變大寫,返回的是一個新的字符串

  • 大寫變小寫:lowercaseString

    NSString *str1 = @"ABCDEFG";
    NSString *str2 = [str1 lowercaseString];

    capitalizedString - 是把大寫變小寫,返回的也是一個新的字符串

  • 首字母變大寫,其餘字母變小寫:capitalizedString

    NSString *str1 = @"thisIFSsbstring";
    NSString *str2 = [str1 capitalizedString];
    NSLog(@"%@",str2);

    輸出結果:Thisifssbstring。返回的一樣是一個新的字符串。

5.NSString先後綴檢查及搜索 

  • 檢查前綴是不是XXX:hasPrefix
    NSString *str1 = @"www.baidu.com";
    BOOL isPre = [str1 hasPrefix:@"www.baidu"];        
    NSLog(@"is - %d",isPre);

    檢查前綴是不是www.baidu,若是是,返回1,不然返回0

  • 檢查後綴是不是XXX:hasSuffix

    NSString *str1 = @"www.baidu.com";
    BOOL isSuf = [str1 hasSuffix:@".com"];        
    NSLog(@"is - %d",isSuf);

    檢查後綴是不是.com,若是是,返回1,不然返回0

  • 字符串查找:rangeOfString
    NSString *str = @"www.baidu.com";
    NSRange rang = [str1 rangeOfString:@"com"];
    NSLog(@"loc - %ld,len - %ld",rang2.location,rang2.length);

    rangeOfString - 查找具體字符串的位置和長度

6.字符串的截取和替換 

  •  從指定位置開始截取到尾部:substringFromIndex
    NSString *str1 = @"我在編程道路上匍匐前行";
    NSString *str2 = [str1 substringFromIndex:4];
    NSLog(@"str2 - %@",str2);

    輸出結果:道路上匍匐前行

  • 從首位截取到指定位置:substringToIndex

    NSString *str1 = @"我在編程道路上匍匐前行";
    NSString *str2 = [str1 substringToIndex:7];
    NSLog(@"str2 - %@",str2);

    輸出結果:我在編程道路上

  • 按照所給的NSRange從字符串中截取:substringWithRange

    NSString *str1 = @"我在編程道路上匍匐前進";
    //建立NSRange
    NSRange rang = NSMakeRange(4, 5);
    //4表示位置,5表示長度
    NSString *str2 = [str1 substringWithRange:rang];
    NSLog(@"str2 - %@",str2);

    NSRange是Foundation框架中比較經常使用的結構體, 定義了兩個屬性location(位置)和length(長度);NSRange用來表示事物的一個範圍,一般是字符串裏的字符範圍或者數組 裏的元素範圍。

  • NSString字符串的替換:stringByReplacingOccurrencesOfString

    NSString *str1 = @"www.baidu.com";
    NSString *str2 = [str4 stringByReplacingOccurrencesOfString:@"baidu" withString:@"SIS"];
    NSLog(@"str2 - %@",str2);

    輸出結果:www.SIS.com

7.NSString的其餘用法 

  • 獲取字符串長度:length
    NSString *str = @"前進前進前進112412";        
    NSLog(@"str - %lu",(unsigned long)[str length]);

    輸出結果:12

  • 得到具體位置的字符:characterAtIndex

    str = @"0123asd";
    char a = [str characterAtIndex:0];  
    //經過字符遍歷整個字符串      
    for (int i = 0; i < [str length]; i++) {
    NSLog(@"i - %c",[str characterAtIndex:i]);
    }

    若是字符串中有漢字,得到的字符是亂碼

  • 字符串和其餘數據類型的轉換:

    //字符串類型轉int型
    NSString *str2 = @"233";
    NSLog(@"str2 - int - %d",str2.intValue);
    //字符串類型轉double型
    NSString *str2 = @"233.342423";
    NSLog(@"str2 - int - %lf",str2.doubleValue);
    //字符串類型轉double型
    NSString *str2 = @"233.342423";
    NSLog(@"str2 - int - %f",str2.floatValue);
相關文章
相關標籤/搜索