typedef struct _NSRange{ NSUInteger location; NSUInteger length;} NSRange;NSRange是一個結構體,其中location是一個以0為開始的index,length是表示對象的長度。他們都是NSUInteger類型。而NSUInteger類型的定義如下: NSRange用來表示事物的一個范圍,通常是字符串里的字符范圍或者數組里的元素范圍 NSRange有2個成員 NSUInteger location : 表示該范圍的起始位置 NSUInteger length : 表示該范圍內的長度NSRange的創建
1), NSRange range; //通過結構體變量訪問成員 range.location = 3; range.length = 2; 2),//結構體變量整體賦值 range = (NSRange){5,3}; NSRange r2 = {4,5}; //最簡單的 3), NSRange r3 = {.location = 3,.length = 5}; 4),OC中新增的(OC中建議使用這種) //NSMakeRange函數的作用給 NSRange結構體變量賦值 NSRange r4 = NSMakeRange(3, 3); NSString *str = NSStringFromRange(r4);//將一個結構體轉化成字符串字符串的截取和替換
1,從指定位置from開始(包含起始位置)到尾部 - (NSString *)substringFromIndex:(NSUInteger)from; 2,從字符串的開頭一直截取到指定的位置to,不包含結束位置 - (NSString *)substringToIndex:(NSUInteger)to; 3,按照所給出的NSRange從字符串中截取子串 - (NSString *)substringWithRange:(NSRange)range; 4,字符串截取練習(獲取itcast標簽中的內容) NSString *str = @"<hello>tangFeng</hello>"; // @">" loc+1 NSUInteger loc = [str rangeOfString:@">"].location + 1; //"t"得位置 // @"</" loc NSUInteger len = [str rangeOfString:@"</"].location - loc; //要截取的字符的長度 // 構建 ruange NSRange r2 = NSMakeRange(loc, len); // 截取 NSString *subStr = [str substringWithRange:r2]; 5,字符串替換 - (NSString *)stringByReplacingOccurrencesOfString:(NSString *)target withString:(NSString *)replacement; 用replacement替換target字符串和其他數據類型轉換
1,和基本數據類型的轉換 - (double)doubleValue; - (float)floatValue; - (int)intValue; - (BOOL)boolValue; 2,C字符串轉OC 字符串 char *s = "zhangsanfeng"; NSString *str = [NSString stringWithUTF8String:s]; 3,OC字符串轉C字符串 NSString *str2 = @"zbz"; const char *s1 = [str2 UTF8String]; 4,去除字符串首尾的空格 NSString *str = @" test at "; NSCharacterSet *set =[NSCharacterSet whitespaceCharacterSet]; NSString *newStr = [str stringByTrimmingCharactersInSet:set];通過NSURL讀寫字符串
1,URL介紹 URL的全稱是Uniform Resource Locator(統一資源定位符). URL是互聯網上標準資源的地址. 2,URL格式 基本URL包含:協議、主機域名(服務器名稱/ip地址)、路徑 舉例: http://www.baidu.com/12121.png 可以簡單認為: URL == 協議頭://主機域名/路徑 3,通過URL讀寫字符串 構建URL NSURL *url = [NSURL URLWithString:@"file:///Users/apple/Desktop/str.txt"];//需要手動加file://協議頭 通過文件路徑創建(默認就是file協議的) NSURL *url = [NSURL fileURLWithPath:@"/Users/apple/Desktop/str.txt"];//自動會將file://協議頭加上 NSString *str = @"$10000000"; 1),寫入字符串 [str writeToURL:url atomically:YES encoding:NSUTF8StringEncoding error:nil] 2),讀取字符串 NSString *str2 = [NSString stringWithContentsOfURL:url encoding:NSUTF8StringEncoding error:nil];NSMutableString的介紹和補充
1, NSMutableString類繼承NSString類 2,NSMutableString和NSString的區別: NSString是不可變的, 里面的文字內容是不能進行修改的; NSMutableString是可變的, 里面的文字內容可以隨時更改; NSMutableString能使用NSString的所有方法.(繼承) 3, 可變和不可變的概念: 不可變: 指的是字符串在內存中占用的存儲空間固定,并且存儲的內容不能發生變化; 可變: 指的是字符串在內存中占用的存儲空間可以不固定,并且存儲的內容可以被修改; 4,使用: NSMutableString *str2 = [NSMutableString stringWithFormat:@"Jack"]; 1),添加: [str2 appendString:@"&Rose"]; [str appendFormat:@"http://www.baidu.com/%d",100];//格式化的添加字符串 2),在指定的位置插入一個字符串: [str insertString:@"p://" atIndex:3]; 3),刪除一部分字符串: [str deleteCharactersInRange:NSMakeRange(3, 4)]; 4),替換字符串的一部分內容 [str replaceCharactersInRange:NSMakeRange(11, 5) withString:@"itnnnn"];使用注意: 1),不能將不可變的字符串賦值給可變的字符串; NSMutableString *str = [NSString stringWithFormat:@"abc"]; 2),NSMutableString的string屬性:會將源對象的所有字符串都覆蓋掉。.string 屬性可以修改字符串的內容 3)開發中到底使用NSString還是NSMutableString?開發中絕大多數用到的都是NSString 只是如果需要做特殊處理的時候(截取、拼接、替換)等操作,才考慮使用NSMutableString改變字符串其中一段字體和顏色
NSMutableAttributedString *textColor = [[NSMutableAttributedString alloc]initWithString:_bookPRice.text]; NSRange rangel = [[textColor string] rangeOfString:[_bookPrice.text substringFromIndex:6]]; [textColor addAttribute:NSForegroundColorAttributeName value:[UIColor redColor] range:rangel]; [textColor addAttribute:NSFontAttributeName value:[UIFont systemFontOfSize:17] range:rangel]; [_lable setAttributedText:textColor];判斷字符串的各種操作
//抽取指定范圍的字符串 NSString *string1 = @"0123456789"; NSRange range1 = NSMakeRange(0, 4);//NSMakeRange這個函數的作用是從第0位開始計算,長度為4 NSLog(@"從第0個字符開始,長度為4的字符串是:%@",[string1 substringWithRange:range1]); NSLog(@"抽取從頭開始到第4個字符:%@",[string1 substringToIndex:4]); NSLog(@"抽取從第6個字符開始到末尾:%@",[string1 substringFromIndex:6]); NSString *string2 = @"wo shi xiao bai zhu"; NSRange range2 = [string2 rangeOfString:@"bai"]; if (range2.length > 0) { NSLog(@"{字符串中“bai”的位置,長度}==%@",NSStringFromRange(range2)); } //判斷在一串字符串中是否找到某個字符串 NSRange range3 = [string2 rangeOfString:@"zhu"]; if (range3.location != NSNotFound) { NSLog(@"找到了@“zhu”這個字符串!"); } else NSLog(@"沒找到!");
新聞熱點
疑難解答