非常简单的问题:
我有一个像这样的数组:
@[@"John Doe", @"Mister Appleseed", @"Steve"];
如果它有两个(或更多)单词,我想删除除第一个之外的所有单词,所以输出数组应该是这样的:
@[@"John", @"Mister", @"Steve"];
我该怎么做?
答案 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]];
}