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

时间:2013-05-15 12:03:11

标签: java

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

[
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("]");
    }
}   

9 个答案:

答案 0 :(得分:31)

您可以使用更短的版本:

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

答案 1 :(得分:5)

System.out.println替换为System.out.print,如下所示:

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

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

答案 2 :(得分:4)

您可以使用 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

答案 3 :(得分:3)

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

答案 4 :(得分:3)

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

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

答案 5 :(得分:1)

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]

答案 6 :(得分:1)

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

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 ]

答案 7 :(得分:0)

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

答案 8 :(得分:0)

在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("]");
    }
}