it-swarm.com.de

Verketten Sie String in String Objective-c

Ich möchte einen String innerhalb eines Strings platzieren. Grundsätzlich in Pseudo-Code:

"first part of string" + "(varying string)" + "third part of string"

Wie mache ich das in Objective-C? Gibt es eine Möglichkeit, obj-c einfach zu verketten? Vielen Dank!

36
jsttn

Ja mach 

NSString *str = [NSString stringWithFormat: @"first part %@ second part", varyingString];

Für die Verkettung können Sie stringByAppendingString verwenden.

NSString *str = @"hello ";
str = [str stringByAppendingString:@"world"]; //str is now "hello world"

Für mehrere Zeichenketten

NSString *varyingString1 = @"hello";
NSString *varyingString2 = @"world";
NSString *str = [NSString stringWithFormat: @"%@ %@", varyingString1, varyingString2];
//str is now "hello world"
95
Dustin

Variationen zu einem Thema:

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"];
11
user529758
NSString * varyingString = ...;
NSString * cat = [NSString stringWithFormat:@"%s%@%@",
  "first part of string",
  varyingString,
  @"third part of string"];

oder einfach -[NSString stringByAppendingString:]

9
justin

Normalerweise würden Sie hier -stringWithFormat verwenden.

NSString *myString = [NSString stringWithFormat:@"%@%@%@", @"some text", stringVariable, @"some more text"];
6
Bill Burgess

Mach einfach

NSString* newString=[NSString stringWithFormat:@"first part of string (%@) third part of string", @"foo"];

Das gibt dir 

@"first part of string (foo) third part of string"
3
Yuji

Ich bin erstaunt, dass in keiner der Top-Antworten darauf hingewiesen wurde, dass Sie unter den letzten Objective-C-Versionen (nachdem sie Literale hinzugefügt haben) einfach so verketten können:

@"first" @"second"

Und es wird zu Folgendem führen:

@"firstsecond"

Sie können es nicht mit NSString-Objekten verwenden, nur mit Literalen, aber es kann in einigen Fällen nützlich sein.

1
Rodrigo

einfache Sache:

[[@"first" stringByAppendingString:@"second"] stringByAppendingString:@"third"];

wenn Sie viele STRINGS zu verketten haben, sollten Sie NSMutableString für eine bessere Leistung verwenden 

0
fengd