【问题标题】:NSArray componentsJoinedByString with conditionNSArray componentsJoinedByString 条件
【发布时间】:2015-09-16 10:56:30
【问题描述】:

例如,我有一个数组

NSArray *array = [NSArray arrayWithObjects:@"one<true>",@"two<false>",@"three<true>",@"four<false>"];

我希望使用 componentsJoinedByString 将输出作为 NSString

"one<true>'&'two<false>'&&'three<true>'&'four<false>'&&'"

也就是说,在一个数组中,如果一个对象包含一个值&lt;true&gt;,它应该被'&amp;'连接起来,如果一个数组值包含一个值&lt;false&gt;,它应该被'&amp;&amp;'连接起来。

我知道,我可以运行一个 for 循环并使用 if 条件,我可以实现输出。但我正在寻找其他有效的方法来实现这一点。

提前致谢。

【问题讨论】:

  • 你的意思是代码高效。您的循环可以像您想象的解决方案一样具有运行时效率。您似乎不太可能真正使用您想象的解决方案,并且代码或运行时效率都很高,因为这不是 componentsJoinedByString 所做的。所以,只需编写循环。

标签: ios objective-c nsstring nsmutablearray nsarray


【解决方案1】:

可能会有帮助

你可以使用stringByReplacingOccurrencesOfString

例如:

yourArrayJoinString=[yourArrayJoinString stringByReplacingOccurrencesOfString:@"<true>" withString:@"<true>'&'"];
yourArrayJoinString=[yourArrayJoinString stringByReplacingOccurrencesOfString:@"<false>" withString:@"<false>'&&'"];

【讨论】:

  • 或者使用 componentsJoinedByString 和 "&&",然后用 "true>'" 替换 "true>'&"
【解决方案2】:

试试这个

NSArray *array = [NSArray arrayWithObjects:@"one<true>",@"two<false>",@"three<true>",@"four<false>" ,nil];
NSString *str = [array componentsJoinedByString:@""];
str =[str stringByReplacingOccurrencesOfString:@"<false>" withString:@"<false>'&&'"];
str =[str stringByReplacingOccurrencesOfString:@"<true>" withString:@"<true>'&'"];

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2012-04-26
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多