次のような配列があるとします。
shuffleArray = [[NSMutableArray alloc] initWithObjects:@"H",@"$",@"E",@"*",@"L",@"L",@"O", nil];
この配列から特殊文字だけを取得したい
さらに、それらをフェッチした後、これらの特殊文字を配列から削除したい
どうすればいいですか?
どんな助けもかなりのものです。
事前にサンクス...
次のような配列があるとします。
shuffleArray = [[NSMutableArray alloc] initWithObjects:@"H",@"$",@"E",@"*",@"L",@"L",@"O", nil];
この配列から特殊文字だけを取得したい
さらに、それらをフェッチした後、これらの特殊文字を配列から削除したい
どうすればいいですか?
どんな助けもかなりのものです。
事前にサンクス...
これを試して、
NSMutableArray *shuffleArray = [[NSMutableArray alloc] initWithObjects:@"H",@"$",@"E",@"*",@"L",@"L",@"O", nil];
NSLog(@"Letters Array%@",[shuffleArray filteredArrayUsingPredicate:[NSPredicate predicateWithBlock:^BOOL(NSString *evaluatedString, NSDictionary *bindings) {
return [[evaluatedString stringByTrimmingCharactersInSet:[NSCharacterSet letterCharacterSet]] length]==0;
}]]);
NSLog(@"Special Characters Array%@",[shuffleArray filteredArrayUsingPredicate:[NSPredicate predicateWithBlock:^BOOL(NSString *evaluatedString, NSDictionary *bindings) {
return [[evaluatedString stringByTrimmingCharactersInSet:[NSCharacterSet letterCharacterSet]] length]!=0;
}]]);
NSMutableArray *shuffleArray = [[NSMutableArray alloc] initWithObjects:@"H",@"$",@"E",@"*",@"L",@"L",@"O", nil];
for(int i=0; i<[shuffleArray count];i++)
{
unichar c = [[shuffleArray objectAtIndex:i] characterAtIndex:0];
if (![[NSCharacterSet alphanumericCharacterSet] characterIsMember:c])
{
NSLog(@"%c",c);
[shuffleArray removeObjectAtIndex:i];
i--;
}
}
これを試してみましたが、うまくいきます。それが役に立てば幸い。幸せなコーディング:)
そのために NSPredicate を使用します。
例:
NSPredicate *predicate = [NSPredicate predicateWithFormat:@"memberNumber == %@", [NSNumber numberWithInt:memberNumber]];
NSArray *matchingMembers = [members filteredArrayUsingPredicate:predicate];
Customer *customer = [matchingMembers lastObject];
NSLog(@"%@", customer.name);
Apple のドキュメント リンクは次のとおりです。
ここに別の説明があります