Objective-C字符串操作

Bro*_*olf 1 ruby python string objective-c objective-c++

目前我正在开发一款软件,目前使用iPhone 3.0 SDK在Objective-C中100%编写.

我来到了一个十字路口,我需要做很多或字符串连接,更具体地说,NSString连接,到目前为止,我一直这样做:

Objective-C字符串连接:

NSString *resultantString = (NSMutableString*)[@"Hello " stringByAppendingString: @"World"];
Run Code Online (Sandbox Code Playgroud)

现在你可以想象,当我尝试将6个NSStrings连接在一起时,这很难理解.

起初,我打算在Objective-C++类中混合以进行字符串连接并将其交还给我的Objective-C类,因为我可以使用C++的简单字符串连接,如:

C++字符串连接:

string cppString = "Hello" + "World" + "see" + "easy!";
Run Code Online (Sandbox Code Playgroud)

我可以使用C char数组,但这会更难阅读.

然后让我感到震惊的是,我可以在Cocoa中使用Python或Ruby桥接器(它提供了正则表达式和高级字符串处理的额外奖励,而不是基于C语言的处理).

这对我来说很有意义,尽管我只编写了少量的Ruby和Python,因为它们被称为字符串操作语言.Perl我决定跳过,因为Xcode没有直接支持它.

我也对性能感兴趣,所以我正在寻找最快的方法来进行字符串连接.

所以我该怎么做?在Objective-C中是否有一些狡猾的简单方法来连接多个字符串一次说10个字符串?或者我的想法是使用Python或Ruby类方法来返回连接或正则表达式修改后的字符串,而不是听起来非常疯狂?也许我甚至错过了另一种方式来做到这一点?

更新: 是的.考虑到拉动另一个语言运行时进行字符串操作,我似乎很疯狂,特别是因为我注意到我关注速度.添加网桥可能比简单地使用NSString/NSMutableString要慢得多.

not*_*oop 9

对于固定大小的连接,您可以使用[NSString stringWithFormat:]如下:

NSString *str = [NSString stringWithFormat:@"%@ %@ %@",
                                  @"Hello", @"World", @"Yay!"];
Run Code Online (Sandbox Code Playgroud)


Kth*_*var 9

你可以使用join操作.

NSArray *chunks  = ... get an array, say by splitting it;
string = [chunks componentsJoinedByString: @" :-) "];
Run Code Online (Sandbox Code Playgroud)

会产生像oop :-) ack :-) bork :-) greeble :-) ponies