我想计算 word 中不重复的标记。
Example:
aabbcc
abc
Result:
0
3
我必须使用 StrTokazizer 或类似的东西
我想计算 word 中不重复的标记。
Example:
aabbcc
abc
Result:
0
3
我必须使用 StrTokazizer 或类似的东西
这将起作用:
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();
}
我们从 in 的字符串中收集所有字符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
}
}