国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 學院 > 開發設計 > 正文

NSRange - 使用詳解

2019-11-08 00:36:21
字體:
來源:轉載
供稿:網友

NSRange的定義

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(@"沒找到!");


發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 如东县| 黄平县| 肥东县| 东辽县| 岱山县| 湘潭市| 山西省| 灌阳县| 古蔺县| 米脂县| 永安市| 红安县| 买车| 汕头市| 永嘉县| 措美县| 绥德县| 卓资县| 郑州市| 溆浦县| 余庆县| 吉首市| 冀州市| 个旧市| 岳普湖县| 米易县| 巩义市| 托克逊县| 大理市| 鹤山市| 甘肃省| 潮安县| 广宁县| 涿州市| 六枝特区| 大化| 宁陕县| 肥城市| 启东市| 萨迦县| 武穴市|