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); */ } }
新聞熱點
疑難解答