2009-08-24 21 views
1

文字列内の一意の文字数を取得するにはどうすればよいですか?文字列の一意の文字の数を取得する方法

例:

NSStringの*のmyString = @ "こんにちは";

私はのmyStringのNSCharacterSetを使用してカウントを取得しようとしているが、それは仕事をdoesntのように思えるれたカウントが4と5ない

になりたいです。

NSCharacterSet * myCharSet = [NSCharacterSet characterSetWithCharactersInString:myString];

[myCharSet count];

チップをありがとう。

+0

誰でもどのようにこれを行うための提案がありますか? –

答えて

0

これを試してみてください。

NSStringの*のmyString = @ "こんにちは"; NSRange範囲= NSMakeRange(場所、長さ)​​; NSString * myCharSet = [myString substringWithRange:range];

+0

コードの場所と長さは何ですか?範囲の部分文字列を取得することは、ユニークな文字を数えることと何が関係していますか? –

+0

私はそれを手に入れませんか? URソリューションを説明してください。 –

2

あなたのコードの派生物:

NSCharacterSet *myCharSet = [NSCharacterSet 
       characterSetWithCharactersInString:@"Hello"];  
NSLog(@"Character Set Count: %d", [myCharSet count]); 

はそれがコンパイルに警告を出していても動作するようです。これを実行すると、「Character Set Count:4」が表示されます。

NSSetは、一意の値のみを許可するように動作します。あなたはNSSetへのすべての文字を追加し、そのカウントを取得することができます:

NSSet *set = [NSSet setWithArray:[@"H e l l o" 
       componentsSeparatedByString:@" "]]; 

NSLog(@"Set Count: %d", [set count]); 

この版画「に設定し数:4」

0

あなたのコードは私のために動作します。 [myCharSet count]を後で別のルーチンで取得しようとすると、myCharSetを保持する必要があり、もともとautoreleaseに設定されている可能性があります。

関連する問題