Разбейте NSString, используя NSString, получите все после строки, которая использовалась для разрыва / разделения - PullRequest
4 голосов
/ 27 апреля 2010

Я пытаюсь получить DOE, ДЖОН из приведенной ниже строки:

IDCHK9898960101DL00300171DL1ZADOE,JOHN

Я пытался разбить строку на 1ZA, так как она будет постоянной.

Вот что я попробовал до сих пор, но это дает мне противоположность того, что я ищу:

 NSString *getTheNameOuttaHere = @"IDCHK9898960101DL00300171DL1ZADOE,JOHN";

 // scan for "1ZA"
 NSString *separatorString = @"1ZA";

 NSScanner *aScanner = [NSScanner scannerWithString:getTheNameOuttaHere];

 NSString *thingsScanned;

 [aScanner scanUpToString:separatorString intoString:&thingsScanned];

 NSLog(@"container: %@", thingsScanned);

Выход:

container: IDCHK9898960101DL00300171DL

Любая помощь будет отличной! Спасибо!

Ответы [ 3 ]

15 голосов
/ 27 апреля 2010

Короче:

[[getTheNameOuttaHere componentsSeparatedByString:@"1ZA"] lastObject];
3 голосов
/ 27 апреля 2010

Я бы попробовал использовать componentsSeparatedByString :

NSArray* components = [getTheNameOuttaHere componentsSeparatedByString:separatorString];

NSString* namePart = [components lastObject];

NSLog(@"name = %@", namePart);
2 голосов
/ 27 апреля 2010

componentsSeparatedByString отлично работал, см. Ниже:

NSString *name = @"IDCHK9898960101DL00300171DL1ZADOE,JOHN";

// scan for "1ZA"
NSString *separatorString = @"1ZA";

NSArray *split = [name componentsSeparatedByString:separatorString];

for (NSString *element in split) {
    NSLog(@"element: %@", element);
}

Выход:

2010-04-26 16:50:58.496 [25694:a0f] element: IDCHK9898960101DL00300171DL
2010-04-26 16:50:58.497 [25694:a0f] element: DOE,JOHN
...