Java 在displayMethod中使用printf和forEach,如何更改单个数组的显示间距

Java 在displayMethod中使用printf和forEach,如何更改单个数组的显示间距,java,generics,foreach,printf,Java,Generics,Foreach,Printf,我正在课堂上练习泛型。我必须向终端打印关于三个不同数组的详细信息,然后运行选择排序并打印出排序后的数组及其最大值和最小值 我的问题是,既然是我的主要问题,我如何才能获得如所附图片所示的正确间距 下面是我的输出 我需要插入和删除空格以匹配此输出, 我想我的主要问题是,我需要更改字符串数组中的间距。例如,整数和字符数组的间距似乎很好,但是,如果我更改displayArray方法的printf,它会明显影响数组中的每一个 我如何单独更改它们 在下面,您将找到我的主方法的Java代码,它运行了所有这

我正在课堂上练习泛型。我必须向终端打印关于三个不同数组的详细信息,然后运行选择排序并打印出排序后的数组及其最大值和最小值

我的问题是,既然是我的主要问题,我如何才能获得如所附图片所示的正确间距

下面是我的输出

我需要插入和删除空格以匹配此输出,

我想我的主要问题是,我需要更改字符串数组中的间距。例如,整数和字符数组的间距似乎很好,但是,如果我更改displayArray方法的printf,它会明显影响数组中的每一个

我如何单独更改它们

在下面,您将找到我的主方法的Java代码,它运行了所有这些。多谢各位

公共类主{
公共静态void main(字符串[]args){
整数[]intArray={10,1,6,4,9,5,2,8,3,7};
字符[]charArray={'a','d','g','c','j','f','e','h','i','b'};
String[]stringArray={“aa”、“dd”、“gg”、“cc”、“jj”、“ff”、“ee”、“hh”、“ii”、“bb”};
System.out.printf(“%s%n”,“原始数组:”);
System.out.printf(“%20s”,“整数数组:”);
显示数组(“整数”,intArray);
System.out.printf(“%20s”,“字符数组:”);
显示数组(“字符”,charArray);
System.out.printf(“%20s”,“字符串数组:”);
displayArray(String.format(“%20s”,“String”),stringArray);
算法algo=新算法();
System.out.printf(“%n%20s”,“最小整数:”+algo.getSmallestElement(intArray));
System.out.printf(“%n%20s”,“最大整数:”+algo.getLargestElement(intArray));
System.out.println();
System.out.printf(“%n%20s”,“最小字符:”+algo.getSmallestElement(charArray));
System.out.printf(“%n%20s”,“最大字符:”+algo.getLargestElement(charArray));
System.out.println();
System.out.printf(“%n%20s”,“最小字符串:”+algo.getSmallestElement(stringArray));
System.out.printf(“%n%20s”,“最大字符串:”+algo.getLargestElement(stringArray));
System.out.println();
System.out.printf(“%n%s”,“排序数组:”);
算法排序(intArray);
System.out.printf(“%n%20s”,“整数数组:”);
显示数组(“整数”,intArray);
算法排序(charArray);
System.out.printf(“%20s”,“字符数组:”);
显示数组(“字符”,charArray);
算法排序(stringArray);
System.out.printf(“%20s”,“字符串数组:”);
displayArray(“字符串”,stringArray);
//displayArray(String.format(“%20s”,“整数数组:”),intArray);
}//端主方法
公共静态void displayArray(字符串标签,E[]列表){
对于(E元素:列表){
System.out.printf(“%2s”,元素);
}//端部forEach
System.out.println();
}//末端显示法
}//结束主课

您可以在displayArray方法中检查e的类型,并相应地调整输出

public static <E> void displayArray(String label, E[] list) {
    for(E element : list) {
        if(element instanceof String)
            System.out.printf("%s", element);
        else
            System.out.printf("%s ", element);
    }
    System.out.println();
}
publicstaticvoiddisplayArray(字符串标签,E[]列表){
对于(E元素:列表){
if(字符串的元素实例)
System.out.printf(“%s”,元素);
其他的
System.out.printf(“%s”,元素);
}
System.out.println();
}

本练习是否要求使用printf方法?