日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

IPHONE 开发 7 -- Object C 02 字符串NSString 与 char* ,字符串的遍历,字符串的比较,截取与大小写改变,搜索字符串与替换字符串...

發布時間:2023/11/30 编程问答 25 豆豆

Objective-C 中核心處理字符串的類是 NSString 與 NSMutableString ,這兩個類最大的區別就是NSString 創建賦值以后該字符串的內容與長度不能在動態的更改,除非重新給這個字符串賦值。而NSMutableString 創建賦值以后可以動態在該字符串上更改內容與長度。

1.創建經典的NSString字符串

NSString 與 char* 最大的區別就是 NSString是一個objective對象,而char* 是一個字節數組。@+ " 字符串 " 這個符號為objective-c NSString 字符串常量的標準用法,char* 創建的時候 無需添加@


  • - (void)viewDidLoad?
  • {?
  • ??? [super viewDidLoad];?
  • ?????
  • ??? //經典的字符串賦值?
  • ??? NSString *str0 = @"我是雨松MOMO";?
  • ?????
  • ??? //字符串格式化合并分別包括?
  • ??? //NSString*類型 int類型 char*類型??
  • ??? NSString *str1 = [NSString stringWithFormat:@"我的名字:%@ 我的年齡:%d 我的郵箱:%s",@"雨松MOMO", 25,"xuanyusong@gmail.com"];?
  • ?????
  • ??? //字符串賦值 參數中只可以寫一個字符串 和第一種很像?
  • ??? NSString *str2 = [NSString stringWithString:@"我是字符串"];?
  • ????
  • ??? //字符串轉換為utf-8格式 參數為char*類型?
  • ??? NSString *str3 = [NSString stringWithUTF8String:"字符串轉換utf-8格式"];?
  • ?????
  • ?????
  • ??? //字符串合并?
  • ??? int i? = 100;?
  • ??? char*c = "xuanyusong";?
  • ??? NSString *temp = @"我是臨時字符串";?
  • ?????
  • ??? //在字符串temp的基礎繼續添加 int i 與 char* c 組成一個新的字符串?
  • ??? NSString *str4 = [temp stringByAppendingFormat:@"整型: %d 字符型 :%s",i,c];?
  • ?????
  • ??? //在字符串temp的基礎繼續添加temp 并組成一個新的字符串?
  • ??? NSString *str5 = [temp stringByAppendingString:temp];??
  • ?????
  • ??? //字符串輸出?
  • ??? NSLog(@"str0 = %@", str0);?
  • ??? NSLog(@"str1 = %@", str1);?
  • ??? NSLog(@"str2 = %@", str2);?
  • ??? NSLog(@"str3 = %@", str3);?
  • ??? NSLog(@"str4 = %@", str4);?
  • ??? NSLog(@"str5 = %@", str5);?
  • ?????
  • }?
  • 2.字符串的遍歷

    每一個字符串其實是由若干個char字符組成,字符串的遍歷實際上就是將字符串中的每一個字符提取出來。
  • - (void)viewDidLoad?
  • {?
  • ??? [super viewDidLoad];?
  • ?????
  • ??? //經典的字符串賦值?
  • ??? NSString *str = @"YUSONGMOMO";?
  • ?????
  • ??? //字符串的長度?
  • ??? int count = [str length];?
  • ?????
  • ??? NSLog(@"字符串的長度是%d",count);?
  • ?????
  • ??? //遍歷字符串中的每一個字符?
  • ??? for(int i =0; i < count; i++)?
  • ??? {?
  • ??????? char c = [str characterAtIndex:i];?
  • ??????? NSLog(@"字符串第 %d 位為 %c",i,c);?
  • ??? }?
  • ?????
  • }
  • 復制代碼
    3.字符串的比較

    isEqualToString 比較字符串是否完全相等,大小寫不一樣也無法完全匹配。


    hasPrefixe 匹配字符串頭


    haSuffix???? 匹配字符串的尾巴

  • - (void)viewDidLoad?
  • {?
  • ??? [super viewDidLoad];?
  • ?
  • ??? NSString *str0 = @"雨松MOMO";?
  • ??? NSString *str1 = @"雨松MOMO";?
  • ?????
  • ?????
  • ??? //字符串完全相等比較?
  • ??? if([str0 isEqualToString:str1])?
  • ??? {?
  • ??????? NSLog(@"字符串完全相等");?
  • ??? }?
  • ?????
  • ??? //字符串以開頭比較?
  • ??? if([str0 hasPrefix:@"雨松"])?
  • ??? {?
  • ??????? NSLog(@"字符串str0以雨松開頭");?
  • ??? }?
  • ?????
  • ??? //字符串以結尾比較?
  • ??? if([str1 hasSuffix:@"MOMO"])?
  • ??? {?
  • ??????? NSLog(@"str1字符串以MOMO結尾");?
  • ??? }?
  • }?
  • 復制代碼

    4.字符串的截取與大小寫改變

  • - (void)viewDidLoad?
  • {?
  • ??? [super viewDidLoad];?
  • ?????
  • ?????
  • ??? NSString *str0 = @"中文my name is xuanyusong";?
  • ?????
  • ??? //截取字符串起始點到index為4之間的內容?
  • ??? NSString * to = [str0 substringToIndex:4];?
  • ?????
  • ??? NSLog(@"to = %@",to);?
  • ?????
  • ??? //截取字符index為2 到結尾之間的內容?
  • ??? NSString * from = [str0 substringFromIndex:2];?
  • ?????
  • ??? NSLog(@"from = %@",from);?
  • ?????
  • ?????
  • ??? //設置截取字符串的范圍??
  • ??? //從第二位到第十位?
  • ??? NSRange rang = NSMakeRange(2, 10);?
  • ??? NSString * strRang = [str0 substringWithRange:rang];?
  • ??? NSLog(@"rang = %@",strRang);?
  • ?????
  • ??? //設置字符串首字母大寫?
  • ??? NSLog(@"str0首字母大寫:%@",[str0 capitalizedString]);?
  • ??? //設置字符串全部內容為大寫?
  • ??? NSLog(@"str0大寫:%@",[str0 uppercaseString]);?
  • ??? //設置字符全部內容為小寫?
  • ??? NSLog(@"str0小寫:%@",[str0 lowercaseString]);?
  • ?????
  • }?
  • 復制代碼

    ?5.搜索字符串與替換字符串

  • - (void)viewDidLoad?
  • {?
  • ??? [super viewDidLoad];?
  • ?????
  • ?????
  • ??? NSString *str0 = @"中文my name is xuanyusong";?
  • ??? NSString *temp = @"is";?
  • ??? NSRange rang = [str0 rangeOfString:temp];?
  • ?????
  • ??? NSLog(@"搜索的字符串在str0中起始點的index 為 %d", rang.location);?
  • ??? NSLog(@"搜索的字符串在str0中結束點的index 為 %d", rang.location + rang.length);?
  • ?????
  • ??? //將搜索中的字符串替換成為一個新的字符串?
  • ??? NSString *str = [str0 stringByReplacingCharactersInRange:rang withString:@"哇咔咔卡卡咔"];??
  • ??? NSLog(@"替換后字符串為%@", str);?
  • ?
  • ?????
  • ??? //將字符串中" " 全部替換成 *?
  • ??? str = [str0 stringByReplacingOccurrencesOfString :@" " withString:@"@"];??
  • ??? NSLog(@"替換后字符串為%@", str);?
  • ?????
  • ?????
  • }
  • 復制代碼

    拓展:使用下面這個方法整體替換字符串還可以設置替換的區域。

    ons:<#(NSStringCompareOptions)#> range:<#(NSRange)#>

    stringByReplacingOccurrencesOfString: (NSString *)withString: (NSString *) options: (NSStringCompareOptions) range: (NSRange)



    這一篇主要介紹NSString 類的使用? 下面篇詳細介紹NSMutableString類

    NSMutableString 類 繼承NSString類,那么NSString 提供的方法在NSMutableString中基本都可以使用,NSMutableString好比一個字符串鏈表,它可以任意的動態在字符串中添加字符串 刪除字符串 指定位置插入字符串,使用它來操作字符串會更加靈活。

    1.字符串尾部添加

    使用alloc在內存中創建字符串對象后邊可以動態的操作這個字符串,修改與添加等。


    appendstring 方法:向字符串尾部添加一個字符串。


    appendFormat方法:向字符串尾部添加多個類型的字符串,可以添加任意數量與類型的字符串。

    字符串中刪除元素


    stringWithString 方法:用于創建字符串初始化賦值
    rangeOfString方法:傳入字符串返回一個在該字符串中的范圍 也可以寫 NSMakeRange(0, 3) 意思是范圍在字符串0位到第3位
    deleteCharactersInRange:刪除字符串 參數為Range 就是刪除的范圍。

    ?

    字符串插入

    stringWithString 方法:用于創建字符串初始化賦值

    insertString方法:第一個參數 插入的字符串對象, 第二個參數 插入的位置。

    ?

    字符串拷貝

    字符串與指定類型轉換

  • - (void)viewDidLoad?
  • {?
  • ??? [super viewDidLoad];?
  • ?????
  • ??? //創建字符串?
  • ??? NSMutableString *str1 = [NSMutableString stringWithString: @"字符串1"];?
  • ??? NSMutableString *str2;?
  • ?????
  • ??? //字符串賦值?
  • ??? str2 = str1;?
  • ?????
  • ??? [str2 appendString: @" 和字符串2"];?
  • ?????
  • ??? NSLog (@"str1 = %@", str1);?
  • ?????
  • ??? NSLog (@"str2 = %@", str2);?????
  • }?
  • 復制代碼


    為什么給str2添加數據后 str1的數據也改變了?這就是指針的魅力所在,因為我們操作的是指針,str2 = str1? 意思是兩個指針同時指向一塊內存,那么str2指向的內存內容改變以后str1當然跟著改變了。


    ?

    轉載于:https://www.cnblogs.com/csj007523/archive/2012/06/25/2562078.html

    總結

    以上是生活随笔為你收集整理的IPHONE 开发 7 -- Object C 02 字符串NSString 与 char* ,字符串的遍历,字符串的比较,截取与大小写改变,搜索字符串与替换字符串...的全部內容,希望文章能夠幫你解決所遇到的問題。

    如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。