目前我正在开发一款软件,该软件目前 100% 使用 iPhone 3.0 SDK 以 Objective-C 编写。
我来到了一个十字路口,我需要做很多事情或字符串连接,更具体地说,NSString 连接,到目前为止我一直这样做:
Objective-C 字符串连接:
NSString *resultantString = (NSMutableString*)[@"Hello " stringByAppendingString: @"World"];
现在你可以想象,当我尝试将 6 个 NSString 连接在一起时,这会变得很难阅读。
起初我考虑混合在一个 Objective-C++ 类中来进行我的字符串连接,然后将它交还给我的 Objective-C 类,因为这样我就可以使用 C++ 的简单字符串连接,例如:
C++ 字符串连接:
string cppString = "Hello" + "World" + "see" + "easy!";
我可以使用 C 字符数组,但这会有点难以阅读。
然后我突然想到我可以在 Cocoa 中使用 Python 或 Ruby 桥接器(与基于 C 的语言相比,它们提供了正则表达式和更高级的字符串处理的额外好处)。
这对我来说很有意义,尽管我只编写了少量的 Ruby 和 Python 代码,因为它们被标榜为字符串操作语言。我决定跳过 Perl,因为 Xcode 不直接支持它。
我也对性能感兴趣,所以我正在寻找最快的字符串连接方法。
那我该怎么办呢?我在 Objective-C 中是否缺少一些非常简单的方法来一次连接多个字符串,比如说 10 个字符串?或者我的想法是使用 Python 或 Ruby 类方法来返回连接的或正则表达式修改的字符串,而不像听起来那么疯狂?也许我什至错过了另一种方法来做到这一点?
更新: 是的。似乎我对引入另一种语言运行时来进行字符串操作的想法相当疯狂,特别是因为我注意到我关心的是速度。添加桥可能比简单地使用 NSString/NSMutableString 慢得多。
最佳答案
对于固定大小的连接,您可以使用 [NSString stringWithFormat:]
,例如:
NSString *str = [NSString stringWithFormat:@"%@ %@ %@",
@"Hello", @"World", @"Yay!"];
关于python - Objective-C 字符串操作,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1093805/