我需要快速帮助,如何将3行输出代码放在一个字符串中。 有了这段代码,我得到了答案:
Duplicate Element : 12
Duplicate Element : 0
Duplicate Element : 43
但我希望它们位于一个阵列中。
public class As1 {
public static void main(String[] args) {
int []array= {12,23,-22,0,43,545,-4,-55,43,12,0,-999,-87};
for (int i = 0; i < array.length-1; i++)
{
for (int j = i+1; j < array.length; j++)
{
if ((array[i] == array[j]) && (i != j))
{
System.out.println("Duplicate Element : "+array[j]);
}
}
}
}
}
我知道我可以使用array.toString[]
,但出现错误。
我希望我的输出像这样
Duplicate Element : 12, 0, 43.
答案 0 :(得分:0)
U始终可以使用布尔型标记(如 first )进行一次性打印:
public static void main(String[] args) {
int[] array = {12, 23, -22, 0, 43, 545, -4, -55, 43, 12, 0, -999, -87};
boolean first = true;
for (int i = 0; i < array.length - 1; i++) {
for (int j = i + 1; j < array.length; j++) {
if ((array[i] == array[j]) && (i != j)) {
if(first) {
System.out.print("Duplicate Element:");
first = false;
}
System.out.print(" " + array[j]);
}
}
}
}
或者您可以创建一个包含所有重复项的新数组,然后打印出来:
public static void main(String[] args) {
int[] array = {12, 23, -22, 0, 43, 545, -4, -55, 43, 12, 0, -999, -87};
int[] duplicates = new int[array.length/2]; //maximum duplicates is half of size the given integer array
int k = 0;
for (int i = 0; i < array.length - 1; i++) {
for (int j = i + 1; j < array.length; j++) {
if ((array[i] == array[j]) && (i != j)) {
duplicates[k] = array[i];
k++;
}
}
}
System.out.print("Duplicate Element:");
for(int i = 0; i < k; i++) {
System.out.print(" " + duplicates[i]);
}
}