繁体   English   中英

如何在一行中打印数组的结果?

[英]How to print the results of an array in a single line?

我想知道是否有人可以帮助我理解为什么我的数组结果不会出现在一行中。 以下代码的结果打印为:

[
1
2
3
4
5
6
7
8
9
10
]

而不是[1 2 3 4 5 6 7 8 9 10]

关于我对结果做错了什么的任何想法都没有上线?

class RangeClass {

    int[] makeRange(int lower, int upper) {
      int arr[] = new int[ (upper - lower) + 1 ];

      for(int i = 0; i < arr.length; i++) {
        arr[i] = lower++;
      }
      return arr;
    }

    public static void main(String arguments[]) {
    int theArray[];
    RangeClass theRange = new RangeClass();

    theArray = theRange.makeRange(1, 10);
    System.out.println("The array: [ ");
    for(int i = 0; i< theArray.length; i++) {
      System.out.println(" " + theArray[i] + " ");
    }
    System.out.println("]");
    }
}   

您可以使用更短的版本:

int theArray[] = {1, 2, 3};
System.out.println(java.util.Arrays.toString(theArray));

更换System.out.printlnSystem.out.print是这样的:

System.out.print("The array: [ ");
for(int i = 0; i< theArray.length; i++) {
  System.out.print(" " + theArray[i] + " ");
}
System.out.println("]");

println在刚刚打印的内容的末尾添加一个行分隔符。

您可以使用Java 8在一行中执行此操作

假设您有这个整数列表

List<Integer> lst = Arrays.asList(1, 2, 3, 4, 5, 6, 7, 8 ,9);

您可以通过这种方式一次打印所有项目

lst.forEach(nb -> System.out.print(nb + " "));

或者以这种方式

lst.forEach(System.out::print);

结果

1 2 3 4 5 6 7 8 9

使用System.out.print而不是System.out.println

int [] arr = {3,4,1,7,8,5,4,11,33,21,17,15};

System.out.print(Arrays.toString(arr).replace(“[”,“”)。replace(“]”,“”).replace(“,”,“”));

for(int i = 0 ; i < theArray.length;i++){
 if(i==0)
   System.out.print("["+theArray[i]);
 else if(i==theArray.length-1)
   System.out.print(","+theArray[i]+"]");
 else
   System.out.print(","+theArray[i]);
}

输出:(例如)

[1,2,5,3,7]

只需对您的代码进行一处小改动:

class ArrayDemo {

  int[] makeRange(int lower, int upper) {
    int arr[] = new int[ (upper - lower) + 1 ];

    for(int i = 0; i < arr.length; i++) {
      arr[i] = lower++;
    }
    return arr;
  }

  public static void main(String arguments[]) {
    int theArray[];
    ArrayDemo theRange = new ArrayDemo();

    theArray = theRange.makeRange(1, 10);
    System.out.print("The array: [ ");  //Remove println here
    for(int i = 0; i< theArray.length; i++) {
      System.out.print(" " + theArray[i] + " "); //Same here
    }
    System.out.println("]");
  }
}

输出数组: [ 1 2 3 4 5 6 7 8 9 10 ]

System.out.println在打印语句后更改行。 这就是为什么你的数组元素不是一行的原因。 尝试使用System.out.print ,这样就可以了。

在所有代码中的System.out.println()处使用System.out.print(),因为如果使用System.out.println(),每次在控制台上输出后都会打印一个新的行字符。调用,但是如果你使用System.out.print(),它将打印你作为参数传递的内容。 所以将代码更改为

class RangeClass {
    int[] makeRange(int lower, int upper) {
        int arr[] = new int[ (upper - lower) + 1 ];
        for(int i = 0; i < arr.length; i++) {
            arr[i] = lower++;
        }
        return arr;
    }

    public static void main(String arguments[]) {
        int theArray[];
        RangeClass theRange = new RangeClass();

        theArray = theRange.makeRange(1, 10);
        System.out.print("The array: [ ");
        for(int i = 0; i< theArray.length; i++) {
            System.out.print(" " + theArray[i] + " ");
        }
        System.out.print("]");
    }
}

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM