NSString Вопрос - PullRequest
       6

NSString Вопрос

1 голос
/ 01 августа 2010

Я пытаюсь извлечь имена из этого списка:

new String:  blood cz            TheDeAtH              TBH DragonFire   Scotsman          King Kot            BobLeeSwagger          AffeMitWaffe    Jackobo          D L  fatality         Jack bobo           telex             apa           Tiger            zip     Guronzan          noobmaster           fear           piotrekjankiewi         RoCJackal 

Эти имена затем должны быть записаны в массив.Я сделал это до сих пор:

NSString *newString = [[test componentsSeparatedByCharactersInSet:
       [[NSCharacterSet letterCharacterSet] invertedSet]] 
         componentsJoinedByString:@";"]; //yes there are spaces in the above list, previously they were replaced by ;

Затем я загружаю его в массив:

 NSArray *chunks = [newString componentsSeparatedByString:@";"];

Это работает, но для имени "blood cz", например, требуетсякровь и cz как отдельная вещь в массиве, но мне нужно, чтобы они были вместе.

У кого-нибудь есть идеи о том, как мне этого добиться?Я ломал голову над этим, потому что я не в состоянии отделить струны.При удалении пробелов все вместе, и я могу отделить строки, причина в том, что эти строки берутся с веб-сайта игрового сервера, где имена игроков меняются ...

Ответы [ 3 ]

4 голосов
/ 01 августа 2010

Это сработало

NSString         *mystring = @"blood cz            TheDeAtH              TBH DragonFire   Scotsman          King Kot            BobLeeSwagger          AffeMitWaffe    Jackobo          D L  fatality         Jack bobo           telex             apa           Tiger            zip     Guronzan          noobmaster           fear           piotrekjankiewi         RoCJackal";
NSString *mystring2 = [mystring stringByReplacingOccurrencesOfString:@"  "  withString:@";"];
    NSCharacterSet   *separator   = [NSCharacterSet     characterSetWithCharactersInString:@";"];
NSArray          *chunks      = [mystring2 componentsSeparatedByCharactersInSet:separator];

    for(NSString * myStr in chunks) {
        NSLog(myStr);
    }

Вам все еще нужно обрезать имена по левому краю (вырезать начальные пробелы), но я оставил вам немного работы.

Также я хочу добавить, что этоЛучше всего называть "взломать".Потому что это больше НЕ РАБОТАЕТ, если пользователь вводит двойной пробел в имени.

Поэтому я бы сделал шаг назад и спросил себя, почему я получаю такую ​​паршивую строку для интерпретации и пытаюсь решить проблему наисточник проблемы ... Это мой основной ответ: проверьте, можете ли вы получить лучшую строку.

1 голос
/ 01 августа 2010

Вы не можете просто заменить пробелы;только если есть два пробела?

0 голосов
/ 01 августа 2010

Я не уверен, но этот выглядит для меня как табуляция, а не пробел. Другое решение похоже на решение Джонаса. Вы можете попытаться разделить 2 строки, только если между ними более 2 пробелов

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