gpt4 book ai didi

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

转载 作者:行者123 更新时间:2023-12-02 12:08:58 24 4
gpt4 key购买 nike

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

我的问题是,在我的主要内容不变的情况下,如何才能获得如所附图片所示的正确间距?

这是我的输出结果

My output as is

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

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

如何单独更改它们?

下面您将找到运行这一切的 Main 方法的 Java 代码。谢谢。

public class Main {
public static void main(String[] args) {
Integer[] intArray = {10, 1, 6, 4, 9, 5, 2, 8, 3, 7};
Character[] 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","Original arrays:");
System.out.printf("%20s","Integer array: " );
displayArray("Integer", intArray);
System.out.printf("%20s","Character array:" );
displayArray("Character", charArray);
System.out.printf("%20s","String array: " );
displayArray(String.format("%20s", "String"), stringArray );

Algorithms algo = new Algorithms();

System.out.printf("%n%20s","Smallest int: " + algo.getSmallestElement(intArray) );
System.out.printf("%n%20s","Largest int: " + algo.getLargestElement(intArray) );
System.out.println();
System.out.printf("%n%20s","Smallest char: " + algo.getSmallestElement(charArray) );
System.out.printf("%n%20s","Largest char: " + algo.getLargestElement(charArray) );
System.out.println();
System.out.printf("%n%20s","Smallest string: " + algo.getSmallestElement(stringArray) );
System.out.printf("%n%20s","Largest string: " + algo.getLargestElement(stringArray) );
System.out.println();
System.out.printf("%n%s","Sorted Arrays: ");
algo.sort(intArray);
System.out.printf("%n%20s","Integer array:");
displayArray("Integer", intArray);
algo.sort(charArray);
System.out.printf("%20s","Character array:");
displayArray("Character", charArray);
algo.sort(stringArray);
System.out.printf("%20s","String array:");
displayArray("String", stringArray);
//displayArray(String.format("%20s", "Integer array:"), intArray );
}// end main mehtod

public static <E> void displayArray(String label, E[] list) {
for (E element : list) {
System.out.printf("%2s", element);
}// end forEach
System.out.println();
}// end display method

}// end main class

最佳答案

您可以检查 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();
}

关于java - 在displayMethod中使用printf和forEach,如何更改单个数组显示的间距,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/46694695/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com