在同一分隔符上多次拆分NSString


76

我目前收到这样的字符串:

@"Sam|26,Hannah|22,Adam|30,Carlie|32,Jan|54"

我将其拆分为:

testArray = [[NSArray alloc] init];
NSString *testString = [[NSString alloc] initWithFormat:@"Sam|26,Hannah|22,Adam|30,Carlie|32,Jan|54,Steve|56,Matty|24,Bill|30,Rob|30,Jason|33,Mark|22,Stuart|54,Kevin|30"];
testArray = [testString componentsSeparatedByString:@","];

dict = [NSMutableDictionary dictionary];
for (NSString *s in testArray) {

    testArray2 = [s componentsSeparatedByString:@"|"];
    [dict setObject:[testArray2 objectAtIndex:1] forKey:[testArray2 objectAtIndex:0]];
}

我现在将收到这样的字符串:

@"Sam|26|Developer,Hannah|22|Team Leader,Adam|30|Director,Carlie|32|PA,Jan|54|Cleaner"

我可以(以及如何)使用与上述相同的方法使用“ |”多次分隔字符串。分隔器?


5
不知何故,我怀疑几乎所有对此问题及其答案的观众和支持者都是人们在寻找NSString“分离”方法,并在此偶然发现答案。
Mark Amery 2013年

第一行只是创建一个在第3行扔掉的NSArray。–
装箱

Answers:


169

下一行...

testArray2 = [s componentsSeparatedByString:@"|"];

将导致数组现在包含3个项目,而不是2个.....,无需再次拆分!


十分感谢!只需要弄清楚如何创建和显示带有3个标签的UITableViewCell ...
Sam Parrish

您可以继承UITableViewCell并手动完成所有操作,也可以使用预设的表格视图单元格样式之一,并使用内容视图添加额外的标签。苹果指南详细说明了一切....
西蒙·李


在“仔细查看表视图单元格”部分中查看“自定义单元格”部分
Simon Lee,

我已经创建了自定义tableviewcell并使用了相同的代码,但是当我配置单元格时,应该为第三个标签放什么?
山姆帕里什

5

做到这一点。

NSString *testString = [[NSString alloc] initWithFormat:@"Sam|26,Hannah|22,Adam|30,Carlie|32,Jan|54,Steve|56,Matty|24,Bill|30,Rob|30,Jason|33,Mark|22,Stuart|54,Kevin|30"];
    NSArray *testArray = [testString componentsSeparatedByString:@","];
    NSLog(@"%@",testArray);
    for(int i=0;i<[testArray count];i++){
        NSString *str=[testArray objectAtIndex:i];
    NSArray *aa=[str componentsSeparatedByString:@"|"];
    NSLog(@"%@",aa);
    }

无需保留阵列。


我写代码的原因是在他的代码中他写了keep语句。不需要它。
Tendulkar

1
如果不使用格式,不要使用initWithFormat?只是:NSString * testString = @“ blahblah”;
pfrank
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.