pragma mark 字符串截取
pragma mark 概念
pragma mark 代码
#import <Foundation/Foundation.h>
#pragma mark 类
#pragma mark main函数
int main(int argc, const char * argv[])
{
#pragma mark 字符串的截取
#warning 字符串截取 (substringWithRange : 返回一个新的字符串)
NSString *str = @"<head>lyh_hehe66</head>";
// NSRange : 位置 / 长度
// 从第6位开始, 获取 3位的长度
// 创建结构体的两种方式
// 1.
// NSRange range = {6,3};
// 2.
/*
NSRange range;
range.location = 6;
range.length = 3;
*/
#warning 开发常用
// 只要是OC提供的结构体, 一般都可以使用NSMake XXX创建
NSRange range = NSMakeRange(6, 3);
NSString *newStr = [str substringWithRange:range];
NSLog(@"str = %@",str);
NSLog(@"newStr = %@",newStr);
#warning 动态获取长度 获取开始位置 和 结尾的位置 >xxxxx<
// 1.动态获取 截取的起始位置
NSUInteger location = [str rangeOfString:@">"].location + 1; // 加1 是获取> 后面的 字母的位置
// 2.动态获取 截取的长度
// 注意: rangeOfString 是 从左至右的开始 查找的 如果需要是从后往前找 需要用多一个参数
// 从后往前找
// NSUInteger length = [str rangeOfString:@"<" options:NSBackwardsSearch].location - 1;
//
NSUInteger length = [str rangeOfString:@"</"].location - location;
NSLog(@"location = %lu,length = %lu",location,length);
#warning 列子
NSString *t = @"abcda";
/**
{
NSCaseInsensitiveSearch = 1,
NSLiteralSearch = 2,
NSBackwardsSearch = 4, // 从后面往前
NSAnchoredSearch = 8,
NSNumericSearch = 64,
NSDiacriticInsensitiveSearch
NSWidthInsensitiveSearch
NSForcedOrderingSearch
NSRegularExpressionSearch
};
*/
/*
NSRange range22 = [t rangeOfString:@"a" options:NSBackwardsSearch];
NSLog(@"%lu",range22.location);
#warning 字符串截取2 (substringFromIndex 从什么地方开始,一致截取到最后)
str = @"<head>lyh</head>";
NSString *newStr1 = [str substringFromIndex:6];
NSLog(@"newStr1 = %@",newStr1);
#warning 字符串截取3 (substringToIndex 从开头开始截取, 一直截取到什么位置)
NSString *newStr2 = [str substringToIndex:6];
NSLog(@"newStr2 = %@",newStr2);
*/
// 例子2
/*
<head>lyh</head> -- > lyh</head> --> lyh
<head>lyh</head> -- > <head>lyh --> lyh
*/
// 获取开始位置
NSString *str66 = @"<head>lyh</head>";
NSUInteger location22 = [str66 rangeOfString:@">"].location + 1;
NSString *newStr22 = [str66 substringFromIndex:location22];
NSLog(@"newStr22 = %@",newStr22);
location22 = [newStr22 rangeOfString:@"</"].location;
// 改变了 指针的指向,并不是修改了原来的字符串
newStr = [newStr substringToIndex:location22];
NSLog(@"newStr = %@",newStr);
return 0;
}
网友评论