Как использовать NSScanner для сканирования из строки - PullRequest
1 голос
/ 30 октября 2011

У меня есть строка, которая выглядит следующим образом:

#chat :hi there

И я хотел бы отсканировать весь текст от : до строки, поэтому она заканчивается как hi there

Я пробовал

[[NSScanner scannerWithString:argument] scanUpToString:@":" intoString:&newarg];

Но newarg содержит только #chat.Как этого добиться?

Ответы [ 2 ]

4 голосов
/ 30 октября 2011

Пример строки:

#chat :Hello World,
#chat :How are you doing?

Код:

NSString *theString =   @"#chat :Hello World,\n"
                         "#chat :How are you doing?";

NSScanner *theScanner = [NSScanner scannerWithString:theString];
NSCharacterSet *seperator = [NSCharacterSet characterSetWithCharactersInString:@":"];
NSCharacterSet *newLine = [NSCharacterSet newlineCharacterSet];
NSString *theText;

while ([theScanner isAtEnd] == NO) {

    [theScanner scanUpToCharactersFromSet:seperator intoString:NULL];
    [theScanner setScanLocation: [theScanner scanLocation]+1];
    [theScanner scanUpToCharactersFromSet:newLine intoString:&theText];

    NSLog(@"%@",theText);

}

Выход:

Hello World,
Как дела?

0 голосов
/ 22 декабря 2013

Подумайте об использовании оператора if для итерации сканирования. Вы всегда говорили компьютеру сканировать все до символа «:», но звучит так, будто вы действительно хотите сканировать все ПОСЛЕ символа «:». Ответ Анны является прекрасным примером такого рода.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...