2012-02-11 16 views

risposta

28

Uso NSScanner:

uscita
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:

Pretel: Stato Indirizzo
postTel: numero

22

modo più semplice è se si conosce il delimitatore, (se è sempre :) è possibile utilizzare questo:

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

che dividere la stringa in due pezzi, e vi darà l'array con ogni stringa

+0

Impressionante. Grazie –

+0

grazie per una soluzione "Handy". – Vats

2

Qui è un'estensione della risposta di zaph che ho implementato con successo.

-(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; 
     } 
} 
Problemi correlati