2012-04-26 36 views

回答

150

使用NSArray实例方法componentsJoinedByString:

- (NSString *)componentsJoinedByString:(NSString *)separator

例子:

NSString *joinedComponents = [array componentsJoinedByString:@","];

+0

所以在我的阵列的对象具有4个或5个属性,我该如何告诉它只加入id值? – Jhorra 2012-04-26 03:36:57

+1

如果您只记录一个物体,您会得到什么?只是ID值?如果是这样,那么使用componentsJoinedBuString就可以得到这个结果:试试看看。 – rdelmar 2012-04-26 03:39:15

+0

我会尝试一下,看看 – Jhorra 2012-04-26 03:43:38

7

如果您正在寻找在雨燕相同的解决方案,您可以使用此:

var array:Array<String> = ["string1", "string2", "string3"] 
var commaSeperatedString = ", ".join(array) // Results in string1, string2, string3 

为了确保您的数组不包含零值,你可以使用过滤器:

array = array.filter { (stringValue) -> Bool in 
    return stringValue != nil && stringValue != "" 
} 
+0

这似乎并不为的NSMutableArray在斯威夫特工作。搜索Google尚未透露答案。 – ultrageek 2015-03-08 22:52:40

+0

@Twan谢谢你,你的回答(几乎)正是我正在寻找的......几乎是因为我需要连接可选的字符串,其中一些可能是零(所以我不想连接它们),但是这个解决方案不接受可选项字符串,它需要解开它们......也许过去有类似的问题,如果可以的话,你能帮助我吗? – cdf1982 2015-04-12 10:31:34

+0

@ cdf1982我已经更新了我的答案。您可以使用过滤器方法执行此操作。 – Antoine 2015-04-12 15:07:30

3

从Array创建字符串:

-(NSString *)convertToCommaSeparatedFromArray:(NSArray*)array{ 
    return [array componentsJoinedByString:@","]; 
} 

从字符串创建阵列:

-(NSArray *)convertToArrayFromCommaSeparated:(NSString*)string{ 
    return [string componentsSeparatedByString:@","]; 
} 
2

夫特:)

var commaSeparatedString = arrayOfEntities.joinWithSeparator(",") 
+1

这个问题指定了一种编程语言。请考虑将其改为客观 - c。 – handiansom 2017-03-16 05:40:05

+0

@handiansom那是2012年。 – 2017-04-12 09:37:18

+0

是的,我也注意到了。^^ – handiansom 2017-04-12 11:06:38