如何在Objective-C中生成逗号分隔的字符串?

时间:2011-04-13 05:05:10

标签: objective-c nsstring

我正在尝试创建逗号分隔的字符串。例如ABC,PQR,XYZ
我正在解析xml,并希望生成xml中节点值的逗号分隔字符串。

我正在做以下事情:

if([elementName isEqualToString:@"Column"])
      NSString *strTableColumn = [attributeDict objectForKey:@"value"];

我在解析时会在strTableColumn中获得不同的节点值,并希望生成逗号分隔。请帮忙。

5 个答案:

答案 0 :(得分:23)

我会这样做。在开始XML处理之前,创建一个可变数组来保存每个“Column”值(可能希望它在你的解析器类中是一个iVar):

NSMutableArray *columns = [[NSMutableArray alloc] init];

然后解析XML,将每个字符串添加到数组中:

if([elementName isEqualToString:@"Column"]) {
    [columns addObject:[attributeDict objectForKey:@"value"]];
}

完成后,创建逗号分隔的字符串并释放数组:

NSString *strTableColumn = [columns componentsJoinedByString:@","];
[columns release];
columns = nil;

答案 1 :(得分:4)

您可以使用以下代码:

NSString *timeCreated = elementName;  
NSArray *timeArray = [timeCreated componentsSeparatedByString:@","];        
NSString *t = [timeArray objectAtIndex:0];  
NSString *t1 = [timeArray objectAtindex:1]; 

然后逐个追加。

答案 2 :(得分:1)

使用NSMutableString

然后你可以使用

[yourMutableString appendString:@","];//there is a comma
[yourMutableString appendString:someOtherString];

这样你的字符串就用逗号分隔

答案 3 :(得分:0)

此方法将返回带有逗号分隔值的数据

的nsmutablestring
-(NSMutableString *)strMutableFromArray:(NSMutableArray *)arr withSeperater:(NSString *)saperator 
{ 
    NSMutableString *strResult = [NSMutableString string];

    for (int j=0; j<[arr count]; j++)
{
    NSString *strBar = [arr objectAtIndex:j];
    [strResult appendString:[NSString stringWithFormat:@"%@",strBar]];
    if (j != [arr count]-1)
    {
        [strResult appendString:[NSString stringWithFormat:@"%@",seperator]];
    }
}
return strResult;
}

答案 4 :(得分:0)

首先想到的是你可以解析数据并使用NSString append方法附加逗号。但那可以有额外的检查。所以更好的解决方案是

解析数据 - &gt;存储到数组 - &gt;添加逗号分隔符 - &gt;最后存储在字符串

// Parse data -> Store into array
NSMutableArray *arrayOfColumns = [[NSMutableArray alloc] init];
if([elementName isEqualToString:@"Column"]){
   [arrayOfColumns addObject:[attributeDict objectForKey:@"value"]];
}
// Add comma separators -> Finally store in string
NSString *strTableColumn = [arrayOfColumns componentsJoinedByString:@","];