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); */ } }
新闻热点
疑难解答