Yanıtlar:
NSString * result = [[array valueForKey:@"description"] componentsJoinedByString:@""];
[array description]
yeni satırlar ve dış parantezler ekler.
NSString * myString = [array componentsJoinedByString:@""];
için kabul edilebilir bir yedek midir?
<ClassName: InstanceAddress>
. valueForKey
Her öğe için belirli özelliğini almaya yapar. Bu durumda, alıcısı alt sınıfları tarafından geçersiz kılınabilen description
bir NSString *
özelliktir NSObject
.
Bir yaklaşım, dizi üzerinde yineleme yapmak description
ve her öğedeki mesajı çağırmak olacaktır :
NSMutableString * result = [[NSMutableString alloc] init];
for (NSObject * obj in array)
{
[result appendString:[obj description]];
}
NSLog(@"The concatenated string is %@", result);
Başka bir yaklaşım, her öğenin sınıfına dayalı bir şey yapmak olacaktır:
NSMutableString * result = [[NSMutableString alloc] init];
for (NSObject * obj in array)
{
if ([obj isKindOfClass:[NSNumber class]])
{
// append something
}
else
{
[result appendString:[obj description]];
}
}
NSLog(@"The concatenated string is %@", result);
Virgül ve diğer yabancı bilgileri istiyorsanız, şunları yapabilirsiniz:
NSString * result = [array description];
-description
) ve parametre olarak -componentsJoinedByString:
ile birlikte kullandıktan sonra bunları birleştirmek daha verimli olabilir @""
.
Sanjay'in cevabı neredeyse oradaydı ama ben bu şekilde kullandım
NSArray *myArray = [[NSArray alloc] initWithObjects:@"Hello",@"World", nil];
NSString *greeting = [myArray componentsJoinedByString:@" "];
NSLog(@"%@",greeting);
Çıktı :
2015-01-25 08:47:14.830 StringTest[11639:394302] Hello World
Sanjay'in ima ettiği gibi - NSArray'den katılan ve size NSString'i veren yöntem bileşenlerini kullandımJoinedByString
BTW NSString , bölme işlemini yapan ve size NSArray'i geri veren ters yöntem bileşenlerine sahiptir .
Son zamanlarda Objective-C Dizeleri hakkında gerçekten iyi bir öğretici buldum:
http://ios-blog.co.uk/tutorials/objective-c-strings-a-guide-for-beginners/
Bunun ilginizi çekebileceğini düşündüm:
Dizeyi bir diziye bölmek istiyorsanız, bunu başarmak için componentsSeparatedByString adlı bir yöntem kullanın:
NSString *yourString = @"This is a test string";
NSArray *yourWords = [myString componentsSeparatedByString:@" "];
// yourWords is now: [@"This", @"is", @"a", @"test", @"string"]
birkaç farklı karakter kümesine bölmeniz gerekirse, NSString'in bileşenlerini kullanınSeparatedByCharactersInSet:
NSString *yourString = @"Foo-bar/iOS-Blog";
NSArray *yourWords = [myString componentsSeparatedByCharactersInSet:
[NSCharacterSet characterSetWithCharactersInString:@"-/"]
];
// yourWords is now: [@"Foo", @"bar", @"iOS", @"Blog"]
Ancak ayırıcı dizenin boş olamayacağını unutmayın. Bir dizeyi kendi karakterlerine ayırmanız gerekiyorsa, dizenin uzunluğu boyunca döngü yapın ve her karakteri yeni bir dizeye dönüştürün:
NSMutableArray *characters = [[NSMutableArray alloc] initWithCapacity:[myString length]];
for (int i=0; i < [myString length]; i++) {
NSString *ichar = [NSString stringWithFormat:@"%c", [myString characterAtIndex:i]];
[characters addObject:ichar];
}
NSString * str = [componentsJoinedByString:@""];
ve dic ya da birden fazla dizi var sonra feryat kullanılan
NSString * result = [[array valueForKey:@"description"] componentsJoinedByString:@""];
NSArray *array = [NSArray arrayWithObjects:@"One",@"Two",@"Three", nil];
NSString *stringFromArray = [array componentsJoinedByString:@" "];
İlk satır, nesneleri içeren bir dizi başlatır. İkinci satır, "" içine dize ekleyerek dizinin tüm öğelerini birleştirir ve bir dize döndürür.
Hedef C Çözümü
NSArray * array = @[@"1", @"2", @"3"];
NSString * stringFromArray = [[array valueForKey:@"description"] componentsJoinedByString:@"-"]; // "1-2-3"
Bir çözüm arayanlar Swift
Dizi dizeler içeriyorsa, String'in join yöntemini kullanabilirsiniz:
var array = ["1", "2", "3"]
let stringFromArray = "-".join(array) // "1-2-3"
Swift 2'de:
var array = ["1", "2", "3"]
let stringFromArray = array.joinWithSeparator("-") // "1-2-3"
Swift 3 ve 4'te
var array = ["1", "2", "3"]
let stringFromArray = array.joined(separator: "-") // "1-2-3"