188

Objective-CでNSArray [@"Apple", @"Pear ", 323, @"Orange"]を文字列に変換する方法を知りたいです。

4

9 に答える 9

538
NSString * result = [[array valueForKey:@"description"] componentsJoinedByString:@""];
于 2009-12-01T20:31:08.633 に答える
32

1 つのアプローチは、description各項目でメッセージを呼び出して、配列を反復処理することです。

NSMutableString * result = [[NSMutableString alloc] init];
for (NSObject * obj in array)
{
    [result appendString:[obj description]];
}
NSLog(@"The concatenated string is %@", result);

別のアプローチは、各アイテムのクラスに基づいて何かを行うことです。

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);

コンマやその他の無関係な情報が必要な場合は、次のようにします。

NSString * result = [array description];
于 2009-12-01T20:28:35.720 に答える
17

Sanjayの答えはほぼそこにあったと思いますが、このように使用しました

NSArray *myArray = [[NSArray alloc] initWithObjects:@"Hello",@"World", nil];
NSString *greeting = [myArray componentsJoinedByString:@" "];
NSLog(@"%@",greeting);

出力:

2015-01-25 08:47:14.830 StringTest[11639:394302] Hello World

Sanjay が示唆したように - 私はメソッドcomponentsJoinedByStringを NSArray から使用しました。これは結合を行い、NSStringを返します。

ところで、 NSStringには逆のメソッドcomponentsSeparatedByStringがあり、分割してNSArrayを返します。

于 2015-01-25T16:54:35.693 に答える
10

最近、Objective-C Strings に関する非常に優れたチュートリアルを見つけました。

http://ios-blog.co.uk/tutorials/objective-c-strings-a-guide-for-beginners/

そして、これは興味深いかもしれないと思いました:

文字列を配列に分割する場合は、 componentsSeparatedByString というメソッドを使用してこれを実現します。

NSString *yourString = @"This is a test string";
    NSArray *yourWords = [myString componentsSeparatedByString:@" "];

    // yourWords is now: [@"This", @"is", @"a", @"test", @"string"]

複数の異なる文字のセットに分割する必要がある場合は、NSString の componentsSeparatedByCharactersInSet を使用します。

NSString *yourString = @"Foo-bar/iOS-Blog";
NSArray *yourWords = [myString componentsSeparatedByCharactersInSet:
                  [NSCharacterSet characterSetWithCharactersInString:@"-/"]
                ];

// yourWords is now: [@"Foo", @"bar", @"iOS", @"Blog"]

ただし、区切り文字列を空白にすることはできません。文字列を個々の文字に分割する必要がある場合は、文字列の長さをループして、各文字を新しい文字列に変換します。

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];
}
于 2013-10-23T13:33:21.850 に答える
9
NSString * str = [componentsJoinedByString:@""];

そして、dicまたは複数の配列があり、以下で使用されます

NSString * result = [[array valueForKey:@"description"] componentsJoinedByString:@""];   
于 2014-06-04T12:07:09.750 に答える
-2

私が知る方法は簡単です。

var NSArray_variable = NSArray_Object[n]
var stringVarible = NSArray_variable as String

nSWIFT 言語では配列 This の内部位置です。Objective Cで動作する可能性があります

于 2015-02-22T22:11:47.137 に答える