iOS - NSRange與字符串截取付秕、匹配和分隔

一、NSRange

1侍郭、NSRange的介紹

NSRange是Foundation框架中比較常用的結(jié)構(gòu)體, 它的定義如下:
    typedef struct _NSRange {
        NSUInteger location;
        NSUInteger length;
    } NSRange;
    NSRange用來表示事物的一個(gè)范圍,通常是字符串里的字符范圍或者數(shù)組里的元素范圍
    NSRange有2個(gè)成員
    NSUInteger location : 表示該范圍的起始位置
    NSUInteger length : 表示該范圍內(nèi)的長度

2询吴、NSRange的創(chuàng)建

1), NSRange range;
    //通過結(jié)構(gòu)體變量訪問成員
    range.location = 3;
    range.length = 2;
2),//結(jié)構(gòu)體變量整體賦值
    range = (NSRange){5,3};
    NSRange r2 = {4,5};  //最簡單的
3),
    NSRange r3 = {.location = 3,.length = 5};
4),OC中新增的(OC中建議使用這種)
    //NSMakeRange函數(shù)的作用給 NSRange結(jié)構(gòu)體變量賦值
    NSRange r4 = NSMakeRange(3, 3);
    NSString *str = NSStringFromRange(r4);//將一個(gè)結(jié)構(gòu)體轉(zhuǎn)化成字符串

二、字符串的截取和替換
1,從指定位置from開始(包含起始位置)到尾部

- (NSString *)substringFromIndex:(NSUInteger)from;

2,從字符串的開頭一直截取到指定的位置to,' 不包含結(jié)束位置 '

- (NSString *)substringToIndex:(NSUInteger)to;

3,按照所給出的NSRange從字符串中截取子串

- (NSString *)substringWithRange:(NSRange)range;

4,字符串截取練習(xí)

練習(xí)一:獲取itcast標(biāo)簽中的內(nèi)容
 NSString *str = @"<hello>tangFeng</hello>";
//  @">"  loc+1
NSUInteger loc = [str rangeOfString:@">"].location + 1;  //"t"得位置
//  @"</" loc
NSUInteger len = [str rangeOfString:@"</"].location - loc;  //要截取的字符的長度
// 構(gòu)建 ruange
 NSRange r2 = NSMakeRange(loc, len);
// 截取
NSString *subStr = [str substringWithRange:r2];
        
練習(xí)二:抽取指定范圍的字符串      
NSString *string1 = @"0123456789";
NSRange range1 = NSMakeRange(0, 4);//NSMakeRange這個(gè)函數(shù)的作用是從第0位開始計(jì)算亮元,長度為4
NSLog(@"從第0個(gè)字符開始猛计,長度為4的字符串是:%@",[string1 substringWithRange:range1]);
NSLog(@"抽取從頭開始到第4個(gè)字符:%@",[string1 substringToIndex:4]);
NSLog(@"抽取從第6個(gè)字符開始到末尾:%@",[string1 substringFromIndex:6]);

5.字符串的匹配:

根據(jù)一個(gè)NSString匹配得到的下表

例:NSString*string =@”sdfsfsfsAdfsdf”;
NSRangerange = [stringrangeOfString:@”f”];

6.分隔字符串

NSString*string =@”sdfsfsfsAdfsdf”;
//從字符A中分隔成2個(gè)元素的數(shù)組
NSArray *array = [string componentsSeparatedByString:@”A”]; 
NSLog(@”array:%@”,array); 
//結(jié)果是adfsfsfs和dfsdf
最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末,一起剝皮案震驚了整個(gè)濱河市爆捞,隨后出現(xiàn)的幾起案子奉瘤,更是在濱河造成了極大的恐慌,老刑警劉巖煮甥,帶你破解...
    沈念sama閱讀 211,561評(píng)論 6 492
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件盗温,死亡現(xiàn)場離奇詭異,居然都是意外死亡成肘,警方通過查閱死者的電腦和手機(jī)肌访,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 90,218評(píng)論 3 385
  • 文/潘曉璐 我一進(jìn)店門,熙熙樓的掌柜王于貴愁眉苦臉地迎上來艇劫,“玉大人吼驶,你說我怎么就攤上這事惩激。” “怎么了蟹演?”我有些...
    開封第一講書人閱讀 157,162評(píng)論 0 348
  • 文/不壞的土叔 我叫張陵风钻,是天一觀的道長。 經(jīng)常有香客問我酒请,道長骡技,這世上最難降的妖魔是什么? 我笑而不...
    開封第一講書人閱讀 56,470評(píng)論 1 283
  • 正文 為了忘掉前任羞反,我火速辦了婚禮布朦,結(jié)果婚禮上,老公的妹妹穿的比我還像新娘昼窗。我一直安慰自己是趴,他們只是感情好,可當(dāng)我...
    茶點(diǎn)故事閱讀 65,550評(píng)論 6 385
  • 文/花漫 我一把揭開白布澄惊。 她就那樣靜靜地躺著唆途,像睡著了一般。 火紅的嫁衣襯著肌膚如雪掸驱。 梳的紋絲不亂的頭發(fā)上肛搬,一...
    開封第一講書人閱讀 49,806評(píng)論 1 290
  • 那天,我揣著相機(jī)與錄音毕贼,去河邊找鬼温赔。 笑死,一個(gè)胖子當(dāng)著我的面吹牛鬼癣,可吹牛的內(nèi)容都是我干的陶贼。 我是一名探鬼主播,決...
    沈念sama閱讀 38,951評(píng)論 3 407
  • 文/蒼蘭香墨 我猛地睜開眼扣溺,長吁一口氣:“原來是場噩夢啊……” “哼骇窍!你這毒婦竟也來了瓜晤?” 一聲冷哼從身側(cè)響起锥余,我...
    開封第一講書人閱讀 37,712評(píng)論 0 266
  • 序言:老撾萬榮一對情侶失蹤,失蹤者是張志新(化名)和其女友劉穎痢掠,沒想到半個(gè)月后驱犹,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體,經(jīng)...
    沈念sama閱讀 44,166評(píng)論 1 303
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡足画,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 36,510評(píng)論 2 327
  • 正文 我和宋清朗相戀三年雄驹,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片淹辞。...
    茶點(diǎn)故事閱讀 38,643評(píng)論 1 340
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡医舆,死狀恐怖,靈堂內(nèi)的尸體忽然破棺而出,到底是詐尸還是另有隱情蔬将,我是刑警寧澤爷速,帶...
    沈念sama閱讀 34,306評(píng)論 4 330
  • 正文 年R本政府宣布,位于F島的核電站霞怀,受9級(jí)特大地震影響惫东,放射性物質(zhì)發(fā)生泄漏。R本人自食惡果不足惜毙石,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 39,930評(píng)論 3 313
  • 文/蒙蒙 一廉沮、第九天 我趴在偏房一處隱蔽的房頂上張望。 院中可真熱鬧徐矩,春花似錦滞时、人聲如沸。這莊子的主人今日做“春日...
    開封第一講書人閱讀 30,745評(píng)論 0 21
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽。三九已至力喷,卻和暖如春刽漂,著一層夾襖步出監(jiān)牢的瞬間,已是汗流浹背弟孟。 一陣腳步聲響...
    開封第一講書人閱讀 31,983評(píng)論 1 266
  • 我被黑心中介騙來泰國打工贝咙, 沒想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留,地道東北人拂募。 一個(gè)月前我還...
    沈念sama閱讀 46,351評(píng)論 2 360
  • 正文 我出身青樓庭猩,卻偏偏與公主長得像,于是被迫代替她去往敵國和親陈症。 傳聞我的和親對象是個(gè)殘疾皇子蔼水,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 43,509評(píng)論 2 348