我有一个数组中的名称列表,其中有一些冗余。我只能得到唯一的名称来打印,但我需要一种方法来打印第一行,跳过打印但是多次有冗余,然后继续打印下一个名称(所有冗余实例总是紧挨着彼此)。以下是我到目前为止所拥有的内容:
int x = 1;
int skipCount = 0;
while (x<i){
if (titles[x].length() == titles[x-1].length()){
//do nothing
skipCount++;
}
else{
System.out.printf("%s\n", titles[x]);
}
x++;
}
所以基本上,我将如何跳过else语句'skipCount'次,然后重新开始?我没有找到太多关于这个的东西,对java来说相对较新。
答案 0 :(得分:2)
为什么不使用Set
? ; - )
final Set<String> set = new HashSet<>(Arrays.asList(titles));
for (final String title : set) {
/* title is unique */
System.out.println(title);
}
部分更改包括使用println
而不是printf("%s\n", ...)
,这更加清晰,使用增强型for
循环,而不是手动跟踪在循环中的数组中的位置。
说实话,您可能会考虑首先使用Set<String>
代替String[]
titles
。