1

次のような配列があるとします。

shuffleArray = [[NSMutableArray alloc] initWithObjects:@"H",@"$",@"E",@"*",@"L",@"L",@"O", nil];

この配列から特殊文字だけを取得したい

さらに、それらをフェッチした後、これらの特殊文字を配列から削除したい

どうすればいいですか?

どんな助けもかなりのものです。

事前にサンクス...

4

4 に答える 4

1

これを試して、

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;

    }]]); 
于 2012-05-14T13:26:05.767 に答える
1
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--;
    }
}

これを試してみましたが、うまくいきます。それが役に立てば幸い。幸せなコーディング:)

于 2012-05-14T13:28:14.077 に答える
0

そのために NSPredicate を使用します。

例:

NSPredicate *predicate = [NSPredicate predicateWithFormat:@"memberNumber == %@", [NSNumber numberWithInt:memberNumber]];
NSArray *matchingMembers = [members filteredArrayUsingPredicate:predicate];

Customer *customer = [matchingMembers lastObject];
NSLog(@"%@", customer.name);

Apple のドキュメント リンクは次のとおりです

ここに別の説明があります

于 2012-05-14T13:17:31.943 に答える
-1

特殊文字に一致する正規表現が必要です。このリンクが役立つ場合があります。

あなたの正規表現は "[^[A-Za-z][0-9]]" のようなものです

正規表現を使用してiOSで一致を取得するには?

于 2012-05-14T13:26:37.593 に答える