2012-08-15 8 views
26

Ich möchte einen String innerhalb eines Strings platzieren. Grundsätzlich in Pseudocode:String in String verbinden Objective-c

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

Wie kann ich das in objective-c tun? Gibt es eine Möglichkeit, in obj-c leicht zu verketten? Vielen Dank!

+0

Viele Antworten unten, [hier] (https://developer.apple.com/library/ios/documentation/Cocoa/Reference/Foundation/Classes/NSString_Class/Reference/NSString.html#//apple_ref/occ/ clm/NSString/stringWithFormat :) ist die Dokumentation zu stringWithFormat. –

+3

'[NSString stringWithFormat: @" Einfach google '% @'! ", @" Http://www.google.hu/search?q=nsstring+class+reference&ie=UTF-8&oe=UTF-8&hl=de-de&client = Safari "];' –

+1

@ H2CO3 können Sie immer noch akzeptiert werden, obwohl – Dustin

Antwort

78

Ja, tun

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

Für Verkettung Sie stringByAppendingString

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

Für mehrere Strings

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

Würde dies für zahlreiche Saiten funktionieren? Wie haben mehrere% @ und variierendeString, variierendeString2? – jsttn

6

Sie würden normalerweise -stringWithFormat hier verwenden.

NSString *myString = [NSString stringWithFormat:@"%@%@%@", @"some text", stringVariable, @"some more text"]; 
+0

Dies ist wirklich der beste Weg, wenn Sie eine große Zeichenfolge haben, die Sie für ein XML erstellen. – ConfusedDeer

9
NSString * varyingString = ...; 
NSString * cat = [NSString stringWithFormat:@"%s%@%@", 
    "first part of string", 
    varyingString, 
    @"third part of string"]; 
verwenden können

oder einfach -[NSString stringByAppendingString:]

3

Just do

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

Dies gibt Ihnen

@"first part of string (foo) third part of string" 
8

Variationen über ein 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"]; 
0

einfach:

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

, wenn Sie viele STRINGS zu verketten haben, können Sie NSMutableString für eine bessere Leistung

0

Iam erstaunt, dass keiner der Verwendung sollte Top-Antworten wiesen darauf hin, dass in den letzten Objective-C-Versionen (nachdem sie li terals), können Sie einfach so verketten:

@"first" @"second" 

Und es wird zur Folge:

@"firstsecond" 

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