重複しない単語のトークンをカウントしたい。
Example:
aabbcc
abc
Result:
0
3
そのようなStrTokazizerまたはsthを使用する必要があります
重複しない単語のトークンをカウントしたい。
Example:
aabbcc
abc
Result:
0
3
そのようなStrTokazizerまたはsthを使用する必要があります
これはうまくいきます:
public int getUniqueTokensCount(String input)
{
    Set<Character> set = new HashSet<Character>();
    Set<Character> dups = new HashSet<Character>();
    for (char c: input.toCharArray())
        if (!set.add(c))
            dups.add(c);
    set.removeAll(dups);
    return set.size();
}
の文字列からすべての文字を収集しset、重複している場合はその文字を に追加しdupsます。すべての文字列が解析されたら、set見つかったすべての重複を (すべての個々の文字を含む) から削除します。一意のトークンの数は、このセットのサイズです。
これは、追加する要素が既に存在する場合にaSetの.add()操作が返されるという事実に依存しています。false
Java を使用している場合は、次のように動作するはずです。
public class UniqueTokenCounter{
  public static void main(String[] args) 
  {
    Arraylist<String> tokens = new ArrayList<String>();
    int uniqueCount=0;
    StringTokenizer stringTokenizer = new StringTokenizer("a b c b d");
    while(stringTokenizer.hasMoreTokens())
    {
       tokens.add(stringTokenizer.nextToken())
    }
    boolean unique=true;
    for(String uniqueToken : tokens) 
    {
       for(String token : tokens) 
       {
          if(uniqueToken.equals(token))
            unique=false;
       }
       if(unique)
          uniqueCount++;
       else
          unique=true;
    }
    //print uniqueCount
  }
}