私は NSString を持っています。「こんにちは」としましょう...この文字列を各文字の間にカンマで埋める最も簡単な方法は何ですか? (最初の文字の前を含む)
したがって、返される文字列は ",H,E,L,L,O" になります。
for ループを作成し、コンマが追加されるたびに 2 増加する変数を使用して、新しいコンマと次の文字を通過してコンマを追加し、その変数を 2 で割った値が大きいかどうかを確認するだけでした。元の文字列の長さより...もっと良い方法はありますか?
私は NSString を持っています。「こんにちは」としましょう...この文字列を各文字の間にカンマで埋める最も簡単な方法は何ですか? (最初の文字の前を含む)
したがって、返される文字列は ",H,E,L,L,O" になります。
for ループを作成し、コンマが追加されるたびに 2 増加する変数を使用して、新しいコンマと次の文字を通過してコンマを追加し、その変数を 2 で割った値が大きいかどうかを確認するだけでした。元の文字列の長さより...もっと良い方法はありますか?
または、変更可能な文字列に文字を追加することもできます:
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]];
}
正規表現が好きなら、それらを使用できます。パフォーマンスについては不明なので、長い文字列の場合は確認することをお勧めします。
その要点は次の 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 の将来のバージョンでもコンパイルされるはずです。