2012-02-11 31 views

Trả lời

28

Sử dụng NSScanner:

NSString *string = @"Country Address Tel:number"; 
NSString *match = @"tel:"; 
NSString *preTel; 
NSString *postTel; 

NSScanner *scanner = [NSScanner scannerWithString:string]; 
[scanner scanUpToString:match intoString:&preTel]; 

[scanner scanString:match intoString:nil]; 
postTel = [string substringFromIndex:scanner.scanLocation]; 

NSLog(@"preTel: %@", preTel); 
NSLog(@"postTel: %@", postTel); 

NSLog đầu ra:

preTel: Quốc gia Địa chỉ
postTel: số

22

Cách dễ nhất là nếu bạn biết delimiter, (nếu nó luôn luôn là :), bạn có thể sử dụng này:

NSArray *substrings = [myString componentsSeparatedByString:@":"]; 
NSString *first = [substrings objectAtIndex:0]; 
NSString *second = [substrings objectAtIndex:1]; 

rằng sẽ chia chuỗi của bạn thành hai mảnh, và cung cấp cho bạn các mảng với mỗi chuỗi

+0

Tuyệt vời. Cảm ơn –

+0

cảm ơn vì Giải pháp "Tiện dụng". – Vats

2

Dưới đây là một phần mở rộng của câu trả lời zaph của mà tôi đã thực hiện thành công.

-(NSString*)stringBeforeString:(NSString*)match inString:(NSString*)string 
{ 
     if ([string rangeOfString:match].location != NSNotFound) 
     { 
      NSString *preMatch; 

      NSScanner *scanner = [NSScanner scannerWithString:string]; 
        [scanner scanUpToString:match intoString:&preMatch]; 

      return preMatch; 
     } 
     else 
     { 
      return string; 
     } 
} 

-(NSString*)stringAfterString:(NSString*)match inString:(NSString*)string 
{ 
     if ([string rangeOfString:match].location != NSNotFound) 
     { 
      NSScanner *scanner = [NSScanner scannerWithString:string]; 

      [scanner scanUpToString:match intoString:nil]; 

      NSString *postMatch; 

      if(string.length == scanner.scanLocation) 
      { 
        postMatch = [string substringFromIndex:scanner.scanLocation]; 
      } 
      else 
      { 
        postMatch = [string substringFromIndex:scanner.scanLocation + match.length]; 
      } 

      return postMatch; 
     } 
     else 
     { 
      return string; 
     } 
} 
Các vấn đề liên quan