2013-05-15 23 views
7

我想知道是否有人可以帮助我理解为什么我的数组结果并不是单一行。下面的代码的执行结果,打印为:如何在单行中打印数组的结果?

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

使用代码块一致性和逻辑缩进。代码的缩进旨在帮助人们理解程序流程! –

+3

使用'System.out.print'而不是'System.out.println'。 – devnull

+1

如果你想在一行中的一切,使用'print',而不是'println' – NilsH

回答

5

通过System.out.print这样的替换System.out.println

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

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

+1

第一个'println'也应该用'print'替换。 – maba

+0

@maba,你是对的。纠正了这一点。 – DeadlyJesus

+1

感谢您的帮助。我是Java编程的新手,我没有意识到还有另一种打印结果的形式。再次感谢支持。 –

3

是System.out.print使用替代的System.out.println

26

您可以使用更短的版本:

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

java.util.Arrays.toString(theArray) –

0

的System.out.println改变打印语句后的行。这就是为什么你的数组元素不能排成一行。 尝试使用System.out.print而不是这样做。

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]

0

是System.out.print使用()在系统的地方因为 如果使用System.out.println(),每次调用控制台后输出的新行字符都会打印出来,但是如果使用System.out.print(),则所有代码中的.out.println()它会打印你传递它的参数。 所以你的代码更改为

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

INT [] ARR = {3,4,1,7,8,5,4,11,33,21,17,15}; (“”,“”)。替换(“]”,“”)。replace(“,”,“”));

2

您可以在一个行中使用做到这一点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 
0

只是提一个小小的改变了代码:

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 ]