文字列内に文字列を配置したい。基本的に擬似コードで:
"first part of string" + "(varying string)" + "third part of string"
Objective-Cでこれを行うにはどうすればよいですか? obj-cで簡単に連結する方法はありますか?ありがとう!
はい、します
NSString *str = [NSString stringWithFormat: @"first part %@ second part", varyingString];
連結にはstringByAppendingString
を使用できます
NSString *str = @"hello ";
str = [str stringByAppendingString:@"world"]; //str is now "hello world"
複数の文字列の場合
NSString *varyingString1 = @"hello";
NSString *varyingString2 = @"world";
NSString *str = [NSString stringWithFormat: @"%@ %@", varyingString1, varyingString2];
//str is now "hello world"
テーマのバリエーション:
NSString *varying = @"whatever it is";
NSString *final = [NSString stringWithFormat:@"first part %@ third part", varying];
NSString *varying = @"whatever it is";
NSString *final = [[@"first part" stringByAppendingString:varying] stringByAppendingString:@"second part"];
NSMutableString *final = [NSMutableString stringWithString:@"first part"];
[final appendFormat:@"%@ third part", varying];
NSMutableString *final = [NSMutableString stringWithString:@"first part"];
[final appendString:varying];
[final appendString:@"third part"];
NSString * varyingString = ...;
NSString * cat = [NSString stringWithFormat:@"%s%@%@",
"first part of string",
varyingString,
@"third part of string"];
または単に-[NSString stringByAppendingString:]
通常はここで-stringWithFormat
を使用します。
NSString *myString = [NSString stringWithFormat:@"%@%@%@", @"some text", stringVariable, @"some more text"];
ただやる
NSString* newString=[NSString stringWithFormat:@"first part of string (%@) third part of string", @"foo"];
これはあなたに与えます
@"first part of string (foo) third part of string"
Iamは、最近のObjective-Cバージョン(リテラルを追加した後)では、次のように連結できることを上位の回答が指摘していないことに驚いています。
@"first" @"second"
そして、それは次のようになります:
@"firstsecond"
NSStringオブジェクトでは使用できません。リテラルのみで使用できますが、場合によっては便利です。
簡単なもの:
[[@"first" stringByAppendingString:@"second"] stringByAppendingString:@"third"];
連結する文字列が多い場合は、NSMutableString
を使用してパフォーマンスを向上させる必要があります