2012-08-15 33 views
26

Tôi muốn đặt một chuỗi trong một chuỗi. Về cơ bản trong mã giả:Chuỗi liên kết trong chuỗi Mục tiêu-c

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

Làm cách nào để thực hiện điều này trong mục tiêu-c? Có cách nào để dễ dàng nối vào obj-c? Cảm ơn!

+0

Rất nhiều câu trả lời bên dưới, [tại đây] (https://developer.apple.com/library/ios/documentation/Cocoa/Reference/Foundation/Classes/NSString_Class/Reference/NSString.html#//apple_ref/occ/ clm/NSString/stringWithFormat :) là tài liệu về stringWithFormat. –

+3

'[NSString stringWithFormat: @" Chỉ cần google '% @'! ", @" Http://www.google.hu/search?q=nsstring+class+reference&ie=UTF-8&oe=UTF-8&hl=en-gb&client = safari "];' –

+1

@ H2CO3 bạn vẫn có thể được chấp nhận mặc dù – Dustin

Trả lời

78

Vâng, làm

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

Đối nối bạn có thể sử dụng stringByAppendingString

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

Đối với nhiều chuỗi

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

Điều này có hiệu quả đối với nhiều chuỗi không? Giống như có một số% @ và làm thay đổiString, varyingString2? – jsttn

6

Bạn thường sử dụng -stringWithFormat tại đây.

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

Đây thực sự là cách tốt nhất khi bạn có một chuỗi lớn mà bạn đang xây dựng để nói một XML. – ConfusedDeer

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

hoặc đơn giản là -[NSString stringByAppendingString:]

3

Chỉ cần làm

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

này mang đến cho bạn

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

Variations về một chủ đề:

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

đơn giản:

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

nếu bạn có nhiều dây để nối, bạn nên sử dụng NSMutableString cho hiệu suất tốt hơn

0

Iam ngạc nhiên rằng không có câu trả lời hàng đầu đã chỉ ra rằng trong các phiên bản Objective-C gần đây (sau khi họ thêm li terals), bạn có thể nối chỉ như thế này:

@"first" @"second" 

Và nó sẽ gây ra:

@"firstsecond" 

Bạn không thể sử dụng nó với các đối tượng NSString, chỉ với literals, nhưng nó có thể hữu ích trong một số các trường hợp.

Các vấn đề liên quan