代码:公共(public)类复制
{
public static void main(String[] args)throws IOException
{
System.out.println("Enter words separated by spaces ('.' to quit):");
Set<String> s = new HashSet<String>();
Scanner input = new Scanner(System.in);
while (true)
{
String token = input.next();
if (".".equals(token))
break;
if (!s.add(token))
System.out.println("Duplicate detected: " + token);
}
System.out.println(s.size() + " distinct words:\n" + s);
Set<String> duplicatesnum = new HashSet<String>();
String token = input.next(); 如果(!s.add( token )) { duplicatesnum.add( token ); System.out.println("检测到重复:"+ token);
System.out.println(duplicatesnum.size());
} } 输出是: 输入以空格分隔的单词('.' 退出): 一二一二。 检测到重复项:一个 检测到重复项:两个 2个不同的词: [二、一]
最佳答案
我假设您想知道不同重复单词的数量。您可以使用另一个 HashSet<String>
对于重复项。
//Outside the loop
Set<String> duplicates = new HashSet<String>();
//Inside the loop
if (!s.add(token))
{
duplicates.add(token);
System.out.println("Duplicate detected: " + token);
}
//Outside the loop
System.out.println(duplicates.size());
此外,如果您关心每个单词的出现,请声明一个 HashMap<String, Integer>
正如在其他帖子中提到的那样。
但是如果你想要所有重复单词的数量(没有不同),只需声明一个计数器:
//Outside the loop
int duplicates = 0;
//Inside the loop
if (!s.add(token))
{
duplicates++;
System.out.println("Duplicate detected: " + token);
}
//Outside the loop
System.out.println(duplicates);
关于java - 确定句子中重复项数的程序,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3059240/