NSString字符串截取的三种方法
1.定义一个字符串a, 截取a 的某一个项目组,复制给b, b必须是int型
NSString *a = @"1.2.30";
int b= [[a substringWithRange:NSMakeRange(4,2)] intValue];
NSLog(@"a:%@ \n",a );
NSLog(@"b:%d",b );
2. 字符串截取到第n位 (substringToIndex: n)(第n 位不算再内)
- (void)viewDidLoad
{
NSString *a = @"i like long dress";
NSString *b = [a substringToIndex:4];
NSLog(@"\n b: %@",b);
}
3.字符串从第n 位开端截取,直到最后 (substringFromIndex:n)(包含第 n 位)
- (void)viewDidLoad
{
NSString *a = @"i like long dress";
NSString *b = [a substringFromIndex:4];
NSLog(@"\n b: %@",b);
}
NSString字符串中提取所需要的目标字段
需要从字符串中提取自己所需要的字符串,例如,从“小张想考北京的公务员”字符串中提取地点-“北京”和工作“公务员”两个字段。经实践测试完成了这个小任务。
其中用到了IOS中的正则表达式、NSString、NSArray等相关知识,采用了关键字分割和索引位置截取两种方法。
//字符串声明,希望提取其中的地点-“北京”和工作“公务员”两个字段
NSString *urlString = @"<span style="font-size:18px;">小张想考北京的公务员</span>";
NSError *error;
//创建正则表达式
NSRegularExpression *regex = [NSRegularExpressionregularExpressionWithPattern:@"做[\\S]*的[\\S]*"options:0error:&error];
if (regex != nil) {
//检查正则表达式是否与字符串匹配
NSTextCheckingResult *firstMatch = [regex firstMatchInString:urlString options:0range:NSMakeRange(0, [urlString length])];
if (firstMatch) {
//NSRange是结构体,表示相关事物的范围。location-起始位置,leng-长度
NSRange resultRange = [firstMatch rangeAtIndex:0];
//NSLog(@"%@",resultRange.length);
NSString *result = [urlString substringWithRange:resultRange];
NSLog(@"1.正则匹配后提取的字符串>>:%@",result);
NSMutableString *mresult = [NSMutableString stringWithCapacity:40];
//将正则提取后的字符串变为可变字符串
[mresult appendString:result];
NSLog(@"2.将字符串变为可变字符串NSMutableString>>:%@",result);
NSRange prepRange = [mresult rangeOfString:@"做"];
[mresult deleteCharactersInRange:prepRange];
NSLog(@"3.去掉动词后的NSMutableString>>:%@",mresult);
//字符串切分成数组
NSArray *chunks = [mresult componentsSeparatedByString:@"的"];
NSLog(@"字符串数组的长度是%ld",chunks.count);
for (NSInteger i =0; i < [chunks count]; i++) {
NSLog(@"4.%ld.去掉介词后分割的chunks[%ld] is %@",i+1,i,chunks[i]);
}
NSLog(@"chunks[0]是:%@",chunks[0]);
NSLog(@"chunks[1]是:%@",chunks[1]);
//<span style="font-family: Arial, Helvetica, sans-serif;">*****方法二、</span><span style="font-family: Arial, Helvetica, sans-serif;">利用索引位置截取字符串</span>
/*
NSString *subString = @"的";
//1.检索“的”的位置和长度
NSRange rangePrep = [result rangeOfString:subString];
NSLog(@"%@位置为:%lu",subString,rangePrep.location);
//2.1获取“做”与“的”之间的字符串位置、长度
NSRange areaRange = NSMakeRange(1,(rangePrep.location-1));
//2.2获取“的”之后的字符串位置、长度
NSRange sortRange = NSMakeRange((rangePrep.location+1), (result.length-rangePrep.location-1));
//3.1根据areaRange对字符串;进行截取
NSString *subArea = [result substringWithRange:areaRange];
//3.2根据sortRange对字符串;进行截取
NSString *subSort = [result substringWithRange:sortRange];
NSLog(@"area:%@",subArea);
NSLog(@"sort:%@",subSort);
*/
}
}