好吧,我是这个网站的新手,但我知道我不应该在这里问硬件问题,但我要问的确实是硬件问题,但它已经完成并提交(并评分),我只是希望让我的程序在更好的理解下运行:)
为了证明我已经完成了它而不是试图快速完成,这里是提交页面的链接: http://i959.photobucket.com/albums/ae76/GoWxGaiA/HWDone_zps8ae79bf7.png
现在在程序上...我应该创建一个程序来检查用户输入的重复字符串,然后按排序顺序输出所有“唯一”字符串(不重复的字符串),以及然后在先前输出的正下方按排序顺序输出“非唯一”的。我的导师告诉我们,我们必须使用“三重嵌套循环”,我假设它只是一个 for 循环,一个 for 循环,一个 for 循环,一个 for 循环......一个数组,在这种情况下我不能也没有找到另一种方法。我为这个作业提交的是这样的:
package Homework2;
import java.util.Scanner;
public class Homework2 {
public static void main(String[] args) {
Scanner stdin = new Scanner(System.in);
System.out.println("Enter a list of words:");
String[] words = stdin.nextLine().split(" ");
System.out.println(words.length);
String[] array = new String[words.length];
for (int i = 0; i < words.length; i++) {
if(words == words)
for (int j = 0; j < words.length; j++) {
array[j] = words;
System.out.println(array[j]);
}
}
}
}
再次强调,我已经提交了这项作业,我只是希望正确完成这项作业以加深我的理解。
如有任何帮助,我们将不胜感激!
最佳答案
我喜欢用一个相当简单的解决方案来解决这个问题:
Set<String> used = new HashSet<>();
public boolean wasUsed(String s) {
return used.add(s);
}
//using the method
if (wasUsed(yourString)) {
// duplicate!
}
Sets 仅包含 1 个元素,添加重复项时将返回 false。让管理变得非常简单。
对于您的情况,我会简单地保留一组单独的Set
单词,并在您遇到重复项时将其删除。
您可以在 Java's Collections 上阅读更多内容了解这些有用的工具。
关于java - Java 中的重复检查器,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23000320/