Java 如何使用println按单位打印同一列中的数字列表?

Java 如何使用println按单位打印同一列中的数字列表?,java,arrays,Java,Arrays,我承认这是一个愚蠢的问题,但这只是我大型计算项目中的一小部分,我无法解决。要分解它,我想在新行上打印数组值 为了美观,我需要将我的价值单位放在同一列中。。。因此,当我编写代码时,会出现以下情况: 一, 二, 三, 十, 111 0 我的代码: public void display() { int j; System.out.println(name); for (j = 0; j < treesOfForest.leng

我承认这是一个愚蠢的问题,但这只是我大型计算项目中的一小部分,我无法解决。要分解它,我想在新行上打印数组值

为了美观,我需要将我的价值单位放在同一列中。。。因此,当我编写代码时,会出现以下情况:

一,

二,

三,

十,

111

0

我的代码:

public void display() {

        int j;

            System.out.println(name);
            for (j = 0; j < treesOfForest.length; j++) {
                if (treesOfForest[j] != null) {
                    System.out.print(" ");
                    System.out.printf("%d",(j+1));
                    System.out.println( " :   " + treesOfForest[j]);
                }
            }
}
public void display(){
int j;
System.out.println(名称);
对于(j=0;j

我的预期产出:


如果您只想获得间距,一个选项是使用
String#format

int[] treesOfForest = new int[] {1, 2, 3, 10, 111, 0};
for (int j=0; j < treesOfForest.length; j++) {
    System.out.println(String.format("%3d", treesOfForest[j]));
}

  1
  2
  3
 10
111
  0
int[]treesoforest=newint[]{1,2,3,10,111,0};
对于(int j=0;j
如果您只想获得间距,一个选项是使用
String#format

int[] treesOfForest = new int[] {1, 2, 3, 10, 111, 0};
for (int j=0; j < treesOfForest.length; j++) {
    System.out.println(String.format("%3d", treesOfForest[j]));
}

  1
  2
  3
 10
111
  0
int[]treesoforest=newint[]{1,2,3,10,111,0};
对于(int j=0;j
获取数组中最长字符串的大小
maxLength
,或者您可以假设所有字符串的长度都不会超过给定的数字:
int maxLength=100//例如

然后使用它像这样打印:
System.out.printf(“%”+maxLength+“s%n”,treesOfForest[j])

public void display(){
int j;
int maxLength=100;//
System.out.println(名称);
对于(j=0;j
获取数组中最长字符串的大小
maxLength
,或者您可以假设所有字符串的长度都不会超过给定的数字:
int maxLength=100//例如

然后使用它像这样打印:
System.out.printf(“%”+maxLength+“s%n”,treesOfForest[j])

public void display(){
int j;
int maxLength=100;//
System.out.println(名称);
对于(j=0;j
您需要像以前一样使用
printf
,但是,您需要包含最小宽度。在
printf
中,如果给定“%3d”,则说明任何插值数字的最小宽度应为3列。也就是说,如果小于3位,则将用空格填充。你也可以改变这种行为。例如,“%03d”,这将用0代替空格离开焊盘

主类{
公共静态void main(字符串[]args){
int[]树支架={10,5,7,9111};
int j;
对于(j=0;j

TL;DR use
System.out.printf(“%d”,numberToPrint)确保最小宽度大于或等于任何数字中的最大数字


有关
printf

的更多信息,您需要像以前一样使用
printf
,但是,您需要包括最小宽度。在
printf
中,如果给定“%3d”,则说明任何插值数字的最小宽度应为3列。也就是说,如果小于3位,则将用空格填充。你也可以改变这种行为。例如,“%03d”,这将用0代替空格离开焊盘

主类{
公共静态void main(字符串[]args){
int[]树支架={10,5,7,9111};
int j;
对于(j=0;j

TL;DR use
System.out.printf(“%d”,numberToPrint)确保最小宽度大于或等于任何数字中的最大数字


有关
printf

的详细信息,可以使用字符串解决此问题

public class Main {
    public static void main(String[] args) {
            printList();
    }

    public static void printList() {
        int maxLen = 0;
        int arr[]={1, 2, 3, 10, 111, 0};
        for (int i=0 ; i<arr.length; i++) {
            int len = String.valueOf(arr[i]).length();
            if (maxLen < len) {
                maxLen = len;       
            }   
        }

        for (int i=0 ; i<arr.length; i++) {
            int len = String.valueOf(arr[i]).length();
            int offset = maxLen - len;
            String spaces = "";

            for (int j=0; j<offset; j++) {
                spaces += " ";
            }
            System.out.println(spaces + arr[i]);
        }
    }
}
公共类主{
公共静态void main(字符串[]args){
打印列表();
}
公共静态void打印列表(){
int maxLen=0;
int arr[]={1,2,3,10,111,0};

对于(int i=0;i您可以使用字符串来解决此问题

public class Main {
    public static void main(String[] args) {
            printList();
    }

    public static void printList() {
        int maxLen = 0;
        int arr[]={1, 2, 3, 10, 111, 0};
        for (int i=0 ; i<arr.length; i++) {
            int len = String.valueOf(arr[i]).length();
            if (maxLen < len) {
                maxLen = len;       
            }   
        }

        for (int i=0 ; i<arr.length; i++) {
            int len = String.valueOf(arr[i]).length();
            int offset = maxLen - len;
            String spaces = "";

            for (int j=0; j<offset; j++) {
                spaces += " ";
            }
            System.out.println(spaces + arr[i]);
        }
    }
}
公共类主{
公共静态void main(字符串[]args){
打印列表();
}
公共静态void打印列表(){
int maxLen=0;
int arr[]={1,2,3,10,111,0};
对于(int i=0;i