0

有没有更好的方法来实现在一行中连接多个字符串?或者在这样做时有任何建议。

NSString *string1 = @"one";
NSString *string2 = @"one";
NSString *string3 = @"one";
NSString *appendedText = @"";

[appendedText = [[string1 stringByAppendingString: string2] stringByAppendingString: string3]
4

2 回答 2

1

安全合适吗?当然。

假设您有:

NSString *a = @"hay";
NSString *b = @"bee";
NSString *c = @"see";

您可以使用stringByAppendingString:将它们全部连接起来:

cat = [a stringByAppendingString:[b stringByAppendingString:c]];

您可以使用stringByAppendingFormat:将它们全部连接起来:

cat = [a stringByAppendingFormat:@"%@%@", b, c];

您可以使用stringWithFormat:

cat = [NSString stringWithFormat:@"%@%@%@", a, b, c];

您可以将它们放在一个数组中,然后使用componentsJoinedByString::(只是为了好玩,使用数组文字语法

array = @[ a, b, c];
cat = [array componentsJoinedByString:@""];

您可以将它们收集在一个可变字符串中:

NSMutableString *temp = [a mutableCopy];
[temp appendString:b];
[temp appendString:b];
cat = [temp copy]; // if you want to make sure result is immutable

所有这些方法都可以。这是我选择使用的建议:

  1. 使用使您的代码清晰易读的任何一个。
  2. 当您的应用程序正常运行时,请使用 Instruments 对其进行分析。
  3. 只有当您发现字符串连接导致性能问题时,才考虑使用不同的方法。
于 2012-08-24T17:14:26.143 回答
0

您可以使用stringByAppendingFormat:

[string1 stringByAppendingFormat:@"%@%@",string2,string3]

是一个参考

你也有NSMutableString但就语法而言,它看起来差不多

丹尼尔

于 2012-08-24T16:56:57.797 回答