将输出设置为一个数组

时间:2018-12-23 22:57:52

标签: arrays output

我需要快速帮助,如何将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.

1 个答案:

答案 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]);
    }
}