您好,登錄后才能下訂單哦!
ios不可改變NSString類和可改變NSMutableString類的使用
一, NSString的常用用法
1,創建對象兩種方法
1) ”-”號方法 alloc + 初始化
關鍵詞 initWithString 與 initWithFormat
例如 NSString *str = [[NSString alloc] initWithString:@"iPhone 4"];
initWithFormat 方法 比 initWithString 方法 更強大,可以設置格式,如上述的字符串” iPhone 4” 可以寫成
NSString *str = [[NSStringalloc] initWithFormat:@"iPhone%d",4];
這里的4是自定義的可以根據自己的需要隨時改變,
2) 這是構造便利器 關鍵詞stringWithString 與 tringWithFormat
例如 NSString *str = [NSString stringWithString:@"iPhone5"];
stringWithFormat 方法比 stringWithString功能強大,可以設置輸出格式
例如 NSString *str = [NSString stringWithFormat:@"iPhone%d",5];
注釋 : 這里的5是自定義的可以根據自己的需要隨時改變
其實凡是方法名最后是以Format結尾的都是可以設置格式的,下面不在贅述
2,求字符串長度 關鍵詞 length
NSString *str = [NSString stringWithString:@"Helloworld];
NSUInteger length = [str length];
NSLog(@"length = %lu",length);
這里長度應設置為無符號長整型
3,根據給定的下標獲取字符串中的字符 關鍵詞 characterAtIndex
NSString *str = [NSStringstringWithString:@"Hello world];
unichar chara = [str characterAtIndex:5];
NSLog(@"%c",chara);
4,判斷是否以指定的字符串開頭或者以指定的字符串結尾
1),判斷一個字符串是否以某個字符串開頭 關鍵詞 hasPrefix, 返回值為BOOL類 型
例如 判斷一個字符串是否以http開頭是否以.com結束
NSString *str = [[NSString alloc]initWithFormat:@"http://www.baidu.com"];
判斷是否以http開頭
BOOL isPrefix = [str hasPrefix:@"http"];
NSLog(@"%d",isPrefix);
2),判斷一個字符串是否以某個字符串結尾 關鍵詞 hasSuffix, 返回值為BOOL類
例如 判斷一個字符串是否以.com結束
BOOL isSuffix = [str hasSuffix:@".com"];
NSLog(@"%d",isSuffix);
5,查找指定字符串的范圍 關鍵詞 rangeOfString
NSRange是結構體類型的類型重定義,range是結構體類型
NSRange range = [str4 rangeOfString:@"ttp"];
if (range.length == 0) {
NSLog(@"沒有找到對應的字符串");
} else {
NSLog(@"location = %lu length = %lu",range.location,range.length);
}
在這里我們可以看到輸出下標要用到結構體中結構體變量訪問結構體成員的比較麻煩,OC提供了一個方法NSStringFromRange 將NSRange類型的結構體變量轉變為字符串對象
NSLog(@"%@",NSStringFromRange(range));
6,獲取子字符串
NSString *str = [[NSString alloc]initWithFormat:@"http://www.baidu.com"];
1)獲取給定下標之后的子字串,包含指定下標對應的字符 關鍵詞substringFromIndex
NSString *str1 = [str substringFromIndex:5];
NSLog(@"str1 = %@",str1);
2)獲取從開始位置到給定下標之前的子字符串,但是不包含指定下標對應的字符 關鍵詞 substringToIndex
str1 = [str substringToIndex:7];
NSLog(@"str1 = %@",str1);
3)獲取從給定下標范圍內的子字符串,即按照所給出的位置,長度,任意地從字符串中截取子串 關鍵詞 substringWithRange:
如: 獲取www
str1 = [str substringWithRange:NSMakeRange(0, 3)];
NSLog(@"str1 = %@",str1);
這里NSMakeRange(0, 3)快速給定結構體變量ange里的下標成員和長 度成員
7,拼接字符串 關鍵詞 stringByAppendingString: 與 stringByAppendingFormat:
例如
NSString *str = [NSStringstringWithFormat:@"Lanou"];
1)lanou后拼接henan stringByAppendingString:
NSString *newStr = [str stringByAppendingString:@"henan"];
NSLog(@"newStr = %@",newStr);
2) lanou后拼接henan9ban
stringByAppendingFormat:比stringByAppendingString:功能強大,因為前者可以使用格式串,
newStr = [str stringByAppendingFormat:@"9ban%@",newStr];
NSLog(@"newStr = %@",newStr);
8,替換字符串 關鍵詞 stringByReplacingOccurrencesOfString:
NSString *str = [NSStringstringWithFormat:@"lanou is a big big big company"];
1),將big替換成small
stringByReplacingOccurrencesOfString:@"big"withString:@"small"];
NSLog(@"newStr = %@",newStr);
在這里會將所有的big都換成small
2),只將第一個big替換成small 關鍵詞stringByReplacingCharactersInRange:
newStr = [str stringByReplacingCharactersInRange:NSMakeRange(11, 3) withString:@"small"];
NSLog(@"newStr = %@",newStr);
9,字符串比較 關鍵詞 compare
NSComparisonResult result =[@"111"compare:@"111"];
NSLog(@"result = %ld",result);
這里結果只有三種1,0,-1,第一:按照降序,即前者大于后者,結果為1,第二:兩者相等,結果為0,第三:按照升序,前者小于后者,結果為-1,
10,字符串和數值類型轉換
1),將字符串"123" 轉換為整數123 intValue
intValue方法從第一個字符開始讀取數字,如果在遇到了除空格之外的字符時,將前面的空格忽略掉,繼續往下找,讀取數字,直到遇到非數字時結束
int value = [@" a1 2a3abc"intValue];
NSLog(@"%d",value);
float value1 = [@" 12a3abc"floatValue];
NSLog(@"%.2f",value1);
2),將數字轉為字符串對象
NSString *str = [NSStringstringWithFormat:@"%f",5.2];
11,字符串大小寫轉換
1),將@"lan OU"全部轉換為大寫 關鍵詞 uppercaseString
NSString *upperStr = [@"lan OU iS a big coMpany"uppercaseString];
NSLog(@"%@",upperStr);
2),將@"lan OU"全部轉換為小寫 關鍵詞 lowercaseString
upperStr = [@"lan OU iS a big coMpany"lowercaseString];
NSLog(@"%@",upperStr);
3),將@"lan OU"每個單詞的首字母大寫 關鍵詞 capitalizedString
upperStr = [@"lan OU iS a big coMpany"capitalizedString];
NSLog(@"%@",upperStr);
12,將C語言的字符串轉換為OC里的字符串對象 關鍵詞 initWithUTF8String:
例如:
char password[20] = {}; //定義一個密碼
NSLog(@"請輸入密碼:");
scanf("%s",password);
在這里先定義一個NSString類型的對象passWord用來接收從C語言的字符串password轉換的OC對象
NSString *passWord= [[NSStringalloc] initWithUTF8String:password];
二,NSMutableString常用用法
對可變字符串的增刪改方法,都是在原字符串的基礎上進行修改的,所有修改之后的原字符串的內容發生了改變,所有無需返回值
由于字符串可改變,因此每一次操作后原字符串都改變為操作后的字符串
1,創建一個可改變的字符串對象 關鍵詞 stringWithFormat
例如: NSMutableString *str1 = [NSMutableStringstringWithFormat:@"lanouhenan"];
2.字符串拼接
例如 :在字符串str1基礎上拼接Frank
[str1 appendFormat:@"%@",@"Frank"];
NSLog(@"%@",str1);(輸出結果為:lanouhenanFrank)
3.刪除字符串. 關鍵詞 deleteCharactersInRange
例如 在原字符串的基礎上刪除henan
[str1 deleteCharactersInRange:NSMakeRange(5, 5)];
NSLog(@"%@",str1); (輸出結果為:lanouFrank)
4) 插入字符串 關鍵詞 insertString: atIndex:
例如 在原字符串的基礎上插入lanou
[str1 insertString:@";lanou"atIndex:0];
NSLog(@"%@",str1); (輸出結果為:lanoulanouFrank)
5)在原字符串基礎上將替換其中一個對象 關鍵詞replaceCharactersInRange
例如 在原字符串基礎上將Frank替換成Duke;
[str1 replaceCharactersInRange:NSMakeRange(10, 5) withString:@"Duke"];
NSLog(@"%@",str1); (輸出結果為:lanoulanoDuke)
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。