2016-07-20 26 views
0

Ich brauche einen Teilstring von einem NSString. Ich brauche den Teil nach - zu erhalten, wenn sie durch E bis zum nächsten -Wie durchläuft man einen NSString und bekommt einen Substring?

Zum Beispiel folgt, ich dieses Zeichenfolge A-BB-CD EF_10AW -ZWE_EG

ich die EF_10AW muß erhalten haben . Irgendeine Idee, wie ich durch einen NSString durchlaufen und einen Teilstring dynamisch erhalten kann?

+2

Verwenden Sie reguläre Ausdrücke. Ich habe jetzt keinen Zugriff auf Xcode, aber dieser Ausdruck erzeugt ein Capturing-Gut, das EF_10AW bei gegebener Testzeichenfolge zurückgibt: ^. * - (? E. *) -. * $ – jp2g

Antwort

1

Wenn Ihre Zeichenfolge mehrere Zeichenfolge enthält, die mit E beginnt und endet mit - dann müssen Sie eine Lösung haben, die alle diese Zeichenfolgen finden kann. Für eine solche Lösung lesen Sie bitte den folgenden Code:

NSString *str = @"A-BB-CD-EF_10AW-ZWE_EG"; 

NSArray *compArray = [str componentsSeparatedByString:@"-"]; 

NSMutableArray *arrayStartWithE = [NSMutableArray array]; 

for (int i = 0; i < [compArray count]; i++) { 
    if ([[compArray objectAtIndex:i] hasPrefix:@"E"]) { 
     [arrayStartWithE addObject:[compArray objectAtIndex:i]]; 
    } 
} 

Hier gibt Ihnen ArraystartWithE alle diese Art von String. Hoffe das könnte dir helfen.

0

versuchen Sie dies splitArray = [yourString componentsSeparatedByString: @ "- E"];

keine Notwendigkeit, manuell Schleife.

0
NSString *haystack = @"A-BB-CD-EF_10AW-ZWE_EG"; 
NSString *haystackPrefix = @"A-BB-CD-"; 
NSString *haystackSuffix = @"-ZWE_EG"; 
NSRange needleRange = NSMakeRange(haystackPrefix.length, 
           haystack.length - haystackPrefix.length - haystackSuffix.length); 
NSString *needle = [haystack substringWithRange:needleRange]; 
NSLog(@"needle: %@", needle); // -> "hello World"