NSString问题

时间:2010-08-01 14:39:10

标签: iphone cocoa nsstring

我正在尝试从此列表中提取名称:

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 个答案:

答案 0 :(得分:4)

这有效

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 :(得分:1)

你不能只用这个空格替换;只有有两个空格?

答案 2 :(得分:0)

我不确定但是这个看起来像一个标签\ t而不是空格。另一种解决方案就像Jonas的解决方案。只有当两个字符串之间有两个以上的空格时,您才可以尝试将它们分开