關于字元串的操作可謂是千變萬化,自己在學習的過程中也遇到了很多問題。接下來就讓我總結一下自己在使用的過程中遇到的問題和解決方法
1.擷取一串字元中的一個字元。
要想擷取一串字元中的一個字元其實有多種方法,在這裡說幾種我用過的,
1》利用執行個體方法,UTF8String
NSString *str=[[NSString alloc]init];
const char *c=[str UTF8String];//将str轉換為c語言中的字元串
這種方法我感覺适用于需要處理字元串中的每一個字元的情況。
2》利用執行個體方法,characterAtIndex
NSString *strGet=@"hello";
char c=[strGet characterAtIndex:2];//擷取到索引為2的這個字元l
這個方法操作字元串可以像操作數組一樣通過索引來擷取字元串中的每一個值
2.擷取一個字串(str1)在另一個字元串(str2)中包含的位置,rangeOfString 執行個體方法
這種方法獲得的是str1在str2中的NSRange(Location,Length)
NSString *str8=@"study ios";
NSRange rang10 = [str8 rangeOfString:@"ios”];//傳回的結果為Location=6,Length=3
通過其Location的值可以判斷str8中是否有"ios”這個字元串
=》Location==NSNotFound則說明該"ios”不存在
3.介紹一個自己感覺用處比較大的方法:replaceCharactersInRange,這也是一個對象方法,注意他是NSMutableString對象的方法,對于NSString是沒有辦法使用的。
NSMutableString*str14=[[NSMutableStringalloc]initWithString:@"abcd"];
[str14 replaceCharactersInRange:NSMakeRange(0,2)withString:@"qw"];
其實我感覺這個函數最好用的地方我覺得是他可以交換字元串中的某兩個字元
char ch=[srcStr characterAtIndex:i];
[srcStr replaceCharactersInRange:NSMakeRange(i, 1) withString:[NSString stringWithFormat:@"%c",[srcStr characterAtIndex:j]]];
[srcStr replaceCharactersInRange:NSMakeRange(j, 1) withString:[NSString stringWithFormat:@"%c",ch]];
,上面這段程式的說明:replaceCharactersInRange:NSMakeRange(location,length), 其中的location其實相當于下标,當length=1時其實就是該字元。反正我自己感覺特别好用
4.//截取字元串
NSString *str9=@"apple";
[str9 substringFromIndex:1];//從字元串的索引為1處開始截取
[str9 substringToIndex:2];//截取到索引為2處
[str9 substringWithRange:NSMakeRange(0, 2)];//從索引為0截取長度為2的字元串
//判斷目前字元串是否為以某個字元串開頭
NSString *str10=@"www.baidu.com";
[str10 hasPrefix:@"www"];//傳回值為bool類型
//判斷目前字元串是否為以某個字元串結尾
NSString *str11=@"www.baidu.com";
[str11 hasSuffix:@"com"];