Samenvoegen String in String Objective-c

Ik wil een string in een string plaatsen. Eigenlijk in pseudo-code:

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

Hoe kan ik dit doen in objective-c? Is er een manier om gemakkelijk samen te voegen in obj-c? Bedankt!


Antwoord 1, autoriteit 100%

Ja, doen

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

Voor aaneenschakeling kunt u stringByAppendingString

. gebruiken

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

Voor meerdere strings

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

Antwoord 2, autoriteit 11%

Variaties op een 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"];

Antwoord 3, autoriteit 8%

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

of gewoon -[NSString stringByAppendingString:]


Antwoord 4, autoriteit 5%

Normaal gesproken zou je hier -stringWithFormatgebruiken.

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

Antwoord 5, autoriteit 2%

Gewoon doen

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

Dit geeft je

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

Antwoord 6, autoriteit 2%

Het verbaast me dat geen van de beste antwoorden erop wees dat je onder recente Objective-C-versies (nadat ze letterlijke termen hebben toegevoegd), op de volgende manier kunt samenvoegen:

@"first" @"second"

En het zal resulteren in:

@"firstsecond"

Je kunt het niet gebruiken met NSString-objecten, alleen met letterlijke waarden, maar het kan in sommige gevallen nuttig zijn.


Antwoord 7

eenvoudige:

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

als u veel STRINGS moet samenvoegen, moet u NSMutableStringgebruiken voor betere prestaties

Other episodes