- 不要等到明天,明天太遙遠(yuǎn),今天就行動(dòng)。
須讀:看完該文章你能做什么?
字符串截取的兩種方式(通過range 、通過從什么地方到什么地方截取)
學(xué)習(xí)前:你必須會(huì)什么?(在這里我已經(jīng)默認(rèn)你具備C語言的基礎(chǔ)了)
NSString的基本使用
一、本章筆記
一、通過range截取 (默認(rèn)是從左到右截取的)
- (NSRange)rangeOfString:(NSString *)searchString;
- (NSRange)rangeOfString:(NSString *)searchString options:(NSStringCompareOptions)mask;
二、通過 從什么地方開始 截取
- (NSString *)substringFromIndex:(NSUInteger)from; // 從什么地方開始截取,一直截取到最后
- (NSString *)substringToIndex:(NSUInteger)to; // 從開頭截取,一直截取到什么位置
二、code
main.m
#pragma mark 12-字符串截取
#pragma mark 概念
一、通過range截取 (默認(rèn)是從左到右截取的)
- (NSRange)rangeOfString:(NSString *)searchString;
- (NSRange)rangeOfString:(NSString *)searchString options:(NSStringCompareOptions)mask;
二、通過 從什么地方開始 截取
- (NSString *)substringFromIndex:(NSUInteger)from; // 從什么地方開始截取,一直截取到最后
- (NSString *)substringToIndex:(NSUInteger)to; // 從開頭截取,一直截取到什么位置
#pragma mark - 代碼
#import <Foundation/Foundation.h>
#pragma mark 類
#pragma mark - main函數(shù)
int main(int argc, const char * argv[])
{
#pragma 1.字符串截取 (通過Range 獲取位置 和 長度)
/*
NSString *str = @"<head>lyh很帥sss</head>";
// NSRange : 位置 和 長度
// 告訴系統(tǒng) 從哪個(gè)位置 和 長度 開始截取
#pragma 創(chuàng)建range的幾種方式
// 1.
// NSRange range = {6,3}; // 從第6位開始截取,截取3位
// 2.
// NSRange range;
// range.location = 6;
// range.length = 3;
// 3.常用
// 只要是OC提供的結(jié)構(gòu)體,一般都可以使用 NSMakeRange 來創(chuàng)建的
// NSRange range = NSMakeRange(6, 3);
// 4.如果需求變更 ,修改變更,動(dòng)態(tài)獲取截取的起始位置,動(dòng)態(tài)獲取截取的長度(獲取>的位置+1 和 獲取<的位置-1)
// 4.1 先拿到起始位置
NSUInteger location = [str rangeOfString:@">"].location + 1;
// 4.2 動(dòng)態(tài)獲取截取的長度
// rangeOfString 是從左到右開始查找的,只要找到就不找了
#warning 從后面開始查找
// rangeOfString options
// (NSStringCompareOptions) -- NSBackwardsSearch 從后面查找
// NSUInteger length = [str rangeOfString:@"<" options:NSBackwardsSearch].location - location;
// 方式2 查找 </的起始位置
NSUInteger length = [str rangeOfString:@"</"].location - location;
NSLog(@"location = %lu, length = %lu",location,length);
NSRange range = NSMakeRange(location, length);
NSString *newStr = [str substringWithRange:range];
NSLog(@"str = %@",str);
NSLog(@"newStr = %@",newStr);
*/
#pragma 2.字符串截取2(從什么地方開始截取)
NSString *str = @"<head>lyh很帥sss</head>";
// 從什么地方開始截取,一直截取到最后
// NSString *newStr = [str substringFromIndex:6];
// NSLog(@"newStr = %@",newStr);
// 從開頭截取,一直截取到什么位置
// NSString *newStr = [str substringToIndex:6];
// NSLog(@"newStr = %@",newStr);
/*
<head>lyh很帥sss</head> --> lyh很帥sss</head> --> lyh很帥sss
<head>lyh很帥sss</head> --> <head>lyh很帥sss --> lyh很帥sss
*/
// NSUInteger location = [str rangeOfString:@">"].location + 1;
// NSString *newStr = [str substringFromIndex:location];
// NSLog(@"newStr = %@",newStr);
//
// location = [newStr rangeOfString:@"</"].location;
// // 改變了 指針的指向 ,
// newStr = [newStr substringToIndex:location];
// NSLog(@"subStr = %@",newStr);
NSUInteger location = [str rangeOfString:@"</"].location;
NSString *newStr = [str substringToIndex:location];
NSLog(@"newStr = %@",newStr);
location = [newStr rangeOfString:@">"].location + 1;
newStr = [newStr substringFromIndex:location];
NSLog(@"newStr = %@",newStr);
return 0;
}