如何获得NSArray的第一个字符串

时间:2014-07-10 15:31:32

标签: ios objective-c nsarray

非常简单的问题:

我有一个像这样的数组:

@[@"John Doe", @"Mister Appleseed", @"Steve"];

如果它有两个(或更多)单词,我想删除除第一个之外的所有单词,所以输出数组应该是这样的:

@[@"John", @"Mister", @"Steve"];

我该怎么做?

3 个答案:

答案 0 :(得分:0)

NSArray * arr = @[@"John Doe", @"Mister Appleseed", @"Steve"];

NSMutableArray * tmp = [NSMutableArray array];

for (NSString * s in arr)
{
    NSArray * cmpnts = [s componentsSeparatedByString:@" "];
    [tmp addObject:cmpnts[0]];
}

arr = tmp;

答案 1 :(得分:0)

迭代名称数组,将每个名称拆分为空格(" "),然后抓取第一个对象:名字。

NSArray *nameArray = @[@"Name", @"Name Two"]; // original array
NSMutable *modifiedNameArray = [NSMutableArray new]; // new mutable array to add new names
for (NSString *fullName in nameArray) { // for loop
    NSString *firstName = [[fullName componentsSeparatedByString:@" "] objectAtIndex:0]; // extract first name

    [modifiedNameArray addObject:firstName]; // add first name to mutable array
}

你必须有两个数组,因为在循环中使用数组时你不能改变数组(即使它是NSMutableArray)。

答案 2 :(得分:0)

检查以下代码:

    NSMutableArray *finalArray = [[NSMutableArray alloc] init];
    NSArray *sourceArray = @[@"John Doe", @"Mister Appleseed", @"Steve"];

    for(NSString *str in sourceArray){
          [finalArray addObject:[str componentsSepratedByString:@" "] objectAtIndex:0]];
    }