溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

iOS開發(fā)OC基礎:OC字符串對象NSString對象方法使用基礎

發(fā)布時間:2020-07-29 13:52:15 來源:網絡 閱讀:1882 作者:winann 欄目:移動開發(fā)

學習OC都知道,OC比較好的地方就是封裝了很多方法,供開發(fā)者直接調用,這是非常方便的。很多方法在系統(tǒng)中都實現了,我們只要直接調用就行了。今天主要是說明字符串對象的一些方法的使用。

下面直接上代碼:

#import <Foundation/Foundation.h>

int main(int argc, const char * argv[])
{

    @autoreleasepool {
        
//        //創(chuàng)建NSString類型的對象
//        //使用初始化方法initWithFormat:根據一定的字符串格式來初始化字符串對象,將格式串中的內容寫入到字符串對象空間內
//        NSString *str = [[NSString alloc] initWithFormat:@"iPhone%d%@", a, @"S"];
//        
//        //使用便利構造器stringWithFormat:方法來快速創(chuàng)建對象,內部進行alloc以及初始化操作,內部通過initWithFormat初始化方法來進行初始化
//        NSString *str1 = [NSString stringWithFormat:@"lanou%@", @"henan"];
//        
//        //將c語言的字符串轉為OC的字符串對象
//        //初始化方法
//        NSString *str21 = [[NSString alloc] initWithUTF8String:"ccc"];
//        //便利構造器方法
//        NSString *str2 = [NSString stringWithUTF8String:"abc"];
//        NSLog(@"%@", str);
//        NSLog(@"%lu", (unsigned long)[str1 length]);
//        NSLog(@"%@,%@", str21, str2);
        
        //1.創(chuàng)建一個新的字符串對象,存儲“http://www.LANOU3g.com,lanouhenan”
        NSString *str = [[NSString alloc] initWithFormat:@"http://www.LANOU3g.com,lanouhenan"];
        //2.求字符串str的長度
        NSUInteger length = [str length];
        NSLog(@"%lu", length);
        
        //3.判斷字符串是否以指定字符串開始或結束
        //判斷一個網址是否是以http://開頭,是否是以.com 結尾。
        BOOL isBegin = [str hasPrefix:@"www"];
        NSLog(@"%d", isBegin);
        
        //判斷是否以.com結尾。
        BOOL isEnd = [str hasSuffix:@".com"];
        NSLog(@"%d", isEnd);
        
        //4.搜索一個指定字符串的范圍
        //經常用來判斷指定的字符串在不在str中。
        //只需根據返回的range的length來判斷即可,如果length為0,說明不在str中,如果不為0,則存在。
        NSRange range = [str rangeOfString:@"lanou"];
//        NSLog(@"location:%lu, range:%lu", range.location, range.length);
        //將一個結構體類型的變量轉化為字符串
        NSLog(@"%@", NSStringFromRange(range));
        
        //5.字符串截?。ǐ@取子字符串),分割字符串
        //獲取子串.com
        NSString *subStr1 = [str substringFromIndex:18];
        NSLog(@"%@", subStr1);
        
        
        //獲取子串http://
        NSString *subStr3 = [str substringToIndex:7];
        NSLog(@"%@", subStr3);
        
        //獲取子串lanou
//        NSRange range2 = {11, 5};
        //NSMakeRange 用來快速創(chuàng)建NSRange變量({})用來賦初值
        NSString *subStr2 = [str substringWithRange:NSMakeRange(11, 5)];
        NSLog(@"%@", subStr2);
        
        
        //6.拼接字符串
        //拼接上henan
        NSString *newStr = [str stringByAppendingFormat:@"%@", @"henan"];
        NSLog(@"%@", newStr);
        
        //7.替換字符串
        //將ou替換成xiang
        NSString *replaceString = [str stringByReplacingOccurrencesOfString:@"ou" withString:@"xiang"];
        NSLog(@"%@", replaceString);
        
        //8.字符串比較
        
        NSComparisonResult result = [@"aa" compare:@"bb"];
        NSLog(@"%ld", result);
        
        //9.字符串和數值類型的轉換
        //將@"5"轉為整數
        //如果字符串前面是空格,則會忽略掉,把空格后面的數字轉為整數,如果出現過其它字符之后,又出現了空格,則不會忽略掉
        NSInteger value1 = [@" 5a2" integerValue];
        NSLog(@"%ld", value1);
        
        //10.大小寫轉換操作。
        //(1)全部轉化為大寫
        NSString *upperString = [str uppercaseString];
        NSLog(@"%@", upperString);
        
        //(2)全部轉化為小寫
        NSString *lowerString = [str lowercaseString];
        NSLog(@"%@", lowerString);
        
        //(3)每個單詞的首字母轉化為大寫,其余小寫
        //如何區(qū)分是不同的單詞
        //除了52個大小寫字母,使用其它的字符來進行間隔,都會識別為不同的單詞
        NSString *cap = [str capitalizedString];
        NSLog(@"%@", cap);
        
        
        //對于NSString創(chuàng)建的對象,都是不可變的字符串,不管對該對象做拼接、分割大小寫轉換、替換、數字轉換等操作,都是對該對象的副本進行操作,不會對原字符串做任何的修改。(返回一個新的字符串)
        //如果想對原字符串進行修改,就要使用NSString的一個子類NSMutableString來創(chuàng)建對象,進行操作,NSMutableString相比于NSString類只是添加了增刪改的方法。
        
        
    }
    return 0;
}


這是一個完整的OC代碼,可以拷貝到工程中直接運行。大家可以看到,main函數中上面的一部分注釋掉了,那是NSString的一些初始化的方法和一個便利構造器。


下面的幾個方法是一些最長用的方法,基本上其他的都不用,如果有些童鞋有需要,可以查看官方的API文檔查看更多的方法。

向AI問一下細節(jié)

免責聲明:本站發(fā)布的內容(圖片、視頻和文字)以原創(chuàng)、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

AI