2

私のアプリケーションNSMutableArrayでは、次のようになります。

 Activity:(
"0-1",
"2-4",
"3-5",
"1-2"
)

NSMutableArray好きなデータが欲しい

Activity:(
"1",
"4",
"5",
"2"
)

どうすればそれを行うことができるか教えてください。

4

3 に答える 3

4

まず、リチャードのコメントに同意します。また、ivar を大文字にするのは悪い習慣です。つまり、次のようなもので必要なことを達成できます。

NSMutableArray *cleanArray = [[NSMutableArray alloc] initWithCapacity:0];  

// Here 'Activity' is your NSArray. A better name would be 'activity'
// (save capitalized names for classes)
for (NSString *item in Activity)
{
    [cleanArray addObject:[[item componentsSeparatedByString:@"-"] lastObject]];
}

これで、「-」の後に部分文字列を含む配列が得られたので、元の配列を新しい配列に置き換えることができます。

于 2012-07-06T12:41:28.363 に答える
1

このコードを使用...

NSMutableArray *arra = [[NSMutableArray alloc] init]; 

アクティビティ配列に初期配列があるとしましょう。

for(NSString *str in Activity){
     str  = [str substringFromIndex:str.length-1];
     [arra addObject:str];
}
[Activity removeAllObjects];
[Activity addAllObjectsFromArray:arra ];
[arra release];//If you are not using ARC
NSLog(@"Now your Activity array =%@",Activity );

配列内の「-」だけを置き換える必要がない場合は、このコードを使用できます..

str = [str stringByReplacingOccurrencesOfString:@"-"
                                 withString:@""]; 

これはあなたを助けるかもしれません..

于 2012-07-06T12:43:05.200 に答える
1

ループでそれを行うことができます:

NSMutableArray *arr = ...
for (int i = 0 ; i != arr.count ; i++) {
    NSString *str = [arr objectAtIndex:i];
    str = [str substringFromIndex:2];
    [arr replaceObjectAtIndex:i withObject:str];
}
于 2012-07-06T12:40:14.963 に答える