0

私は NSString を持っています。「こんにちは」としましょう...この文字列を各文字の間にカンマで埋める最も簡単な方法は何ですか? (最初の文字の前を含む)
したがって、返される文字列は ",H,E,L,L,O" になります。


for ループを作成し、コンマが追加されるたびに 2 増加する変数を使用して、新しいコンマと次の文字を通過してコンマを追加し、その変数を 2 で割った値が大きいかどうかを確認するだけでした。元の文字列の長さより...もっと良い方法はありますか?

4

2 に答える 2

3

または、変更可能な文字列に文字を追加することもできます:

NSString *original = @"Hello";
NSUInteger len = original.length;

NSMutableString *newStr = [NSMutableString stringWithCapacity:len * 2];
for (int i = 0; i < len; i++) {
    [newStr appendFormat:@",%C", [original characterAtIndex:i]];
}
于 2013-02-10T16:02:44.183 に答える
0

正規表現が好きなら、それらを使用できます。パフォーマンスについては不明なので、長い文字列の場合は確認することをお勧めします。

その要点は次の 2 行のコードです。

NSString *orgString = @"Hello"; // Not part of the meat, for the line counters out there...

NSRegularExpression *regex = [NSRegularExpression regularExpressionWithPattern:@"." 
                                                                       options:0
                                                                         error:nil];

NSString *commaString = [regex stringByReplacingMatchesInString:orgString
                                                        options:0
                                                          range:NSMakeRange(0, orgString.length)
                                                   withTemplate: @",$0"];

正規表現は 1 つのドットだけで構成されているため、正規表現のエラーをチェックしないようにしました。これは、OS の将来のバージョンでもコンパイルされるはずです。

于 2013-02-10T16:16:56.003 に答える