Foundation框架支持一個名為NSString的類,用于處理字符串對象。
注意 : 要使用OC語言創建一個字符串對象,需要在字符串開頭放置一個@字符:
@"Programming is fun"
一 : NSLog
%@用來顯示NSString。
#import <Foundation/Foundation.h>
int main(int argc, const char * argv[]) {
@autoreleasepool {
NSString *str = @"Programming is fun";
NSLog(@"%@",str);
}
return 0;
}
結果:
當然值得注意的是 , %@可以顯示其他的對象:
#import <Foundation/Foundation.h>
int main(int argc, const char * argv[]) {
@autoreleasepool {
NSString *str = @"Programming is fun";
NSLog(@"%@",str);
NSNumber *initNum = [NSNumber numberWithInteger:100];
NSLog(@"%@",initNum);
}
return 0;
}
結果:
二 : 基本字符串操作①
#import <Foundation/Foundation.h>
int main(int argc, const char * argv[]) {
@autoreleasepool {
NSString *str1 = @"This is string A --";
NSString *str2 = @"This is string B";
NSString *res;
NSComparisonResult compareResult;
//計算字符串中的字符
NSLog(@"Length of str1 : %lu" , [str1 length]);
//將一個字符串復制到另一個字符串(全部覆蓋(擦掉覆蓋))
res = [NSString stringWithString:str1];
NSLog(@"copy : %@", res);
res = [NSString stringWithString:str2];
NSLog(@"copy : %@", res);
//將一個字符串復制到另一個字符串的末尾(在str1后面加str2)
str2 = [str1 stringByAppendingString:str2];
NSLog(@"Concatentation : %@" , str2);
//驗證2個字符串是否相等
if( [str1 isEqualToString: res] == YES){
NSLog(@" str1 == res ");
}else{
res = [NSString stringWithString:str1];
if([str1 isEqualToString:res] == YES){
NSLog(@"str1 == res 2");
}
}
//驗證一個字符串死否小于,等于或大于另一個字符串
compareResult = [str1 compare:str2];
if( compareResult == NSOrderedAscending ){
NSLog(@"str1 < str2");
}else if( compareResult == NSOrderedSame ){
NSLog(@"str1 == str2");
}else{
//NSOrderedDescending
NSLog(@"str1 > str2");
}
//將字符串轉為大寫(注意 : str1的大小寫不變)
res = [str1 uppercaseString];
NSLog(@"str1 : %@ , res : %@" , str1 , res);
//將字符串轉換成小寫
res = [str1 lowercaseString];
NSLog(@"str1 : %@ , res : %@" , str1 , res);
}
return 0;
}
結果:

二 : 基本字符串操作②
#import <Foundation/Foundation.h>
int main(int argc, const char * argv[]) {
@autoreleasepool {
NSString *str1 = @"This is string A --";
NSString *str2 = @"This is string B";
NSString *res;
NSRange subRange;
//從字符串中提取前3個字符
res = [str1 substringToIndex:3];
NSLog(@"First 3 chars of str1 : %@" , res);
//提取從索引5開始直到結尾的子字符串
res = [str1 substringFromIndex:5];
NSLog(@"Chars from index 5 of str1 : %@", res);
//提取從索引5開始到索引13的子字符串(6個字符)
res = [[str1 substringFromIndex:8] substringToIndex:6];
NSLog(@"Chars from index 8 through 13 : %@" , res);
//更簡單的方法 提取從索引5開始到索引13的子字符串(6個字符)
res = [str1 substringWithRange:NSMakeRange(8,6)];
NSLog(@"!! Chars from index 8 through 13 : %@" , res);
//查找字符串
subRange = [str1 rangeOfString:@"string"];
NSLog(@"String is at index %lu ,length is %lu" , subRange.location , subRange.length);
subRange = [str1 rangeOfString:@"string B"];
//沒有找到
if( subRange.location == NSNotFound ){
NSLog(@"String not found");
}
}
return 0;
}
結果:
三 :可變字符串
NSMutableString 類可以用來創建可以更改字符的字符串對象,它繼承自NSString
#import <Foundation/Foundation.h>
int main(int argc, const char * argv[]) {
@autoreleasepool {
NSString *str1 = @"This is string A";
NSString *search , *replace;
NSMutableString *mstr;
NSRange substr;
//從不可變字符串創建可變字符串
mstr = [NSMutableString stringWithString: str1];
NSLog(@"%@",mstr);
//插入字符
[mstr insertString:@" Aonaufly" atIndex:7];
NSLog(@"%@",mstr);
//插入末尾進行有效拼接
[mstr insertString:@" and string B" atIndex:[mstr length]];
NSLog(@"%@",mstr);
//same
[mstr appendString:@" and string C"];
NSLog(@"%@",mstr);
//根據范圍刪除子字符串
[mstr deleteCharactersInRange: NSMakeRange(16,13)];
NSLog(@"%@",mstr);
//查找然后將其刪除
substr = [mstr rangeOfString:@"string B and "];
if( substr.location != NSNotFound ){
[mstr deleteCharactersInRange:substr];
NSLog(@"%@",mstr);
}
//直接設置為可變的字符串
[mstr setString:@"This is string A"];
NSLog(@"%@",mstr);
//替換一些字符串
[mstr replaceCharactersInRange:NSMakeRange(8,8) withString:@"a mutable string"];
NSLog(@"%@",mstr);
//查找和替換
search = @"This is";
replace = @"An example of";
substr = [mstr rangeOfString:search];
if(substr.location != NSNotFound){
[mstr replaceCharactersInRange: substr withString:replace];
NSLog(@"%@",mstr);
}
//查找和替換所有的匹配項
search = @"a";
replace = @"X";
substr = [mstr rangeOfString:search];
while (substr.location != NSNotFound) {
[mstr replaceCharactersInRange:substr withString:replace];
substr = [mstr rangeOfString:search];
}
NSLog(@"%@",mstr);
}
return 0;
}
結果:
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。