2013-05-15 16 views
7

Chciałbym wiedzieć, czy ktoś może mi pomóc, aby zrozumieć, dlaczego mój wynik tablicy nie jest w jednej linii. Wyniki poniższego kodu są drukowane jako:Jak wydrukować wyniki tablicy w jednym wierszu?

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

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

Jakieś przemyślenia na temat tego, co robię źle, aby wyniki nie pojawiały się w Internecie?

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

użyć spójna i logiczna tiret dla bloków kodu. Wcięcie kodu ma pomóc ludziom zrozumieć przebieg programu! –

+3

Użyj 'System.out.print' zamiast' System.out.println'. – devnull

+1

Jeśli chcesz wszystko w jednym wierszu, użyj 'print', zamiast' println' – NilsH

Odpowiedz

5

Wymień System.out.println przez System.out.print tak:

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

println dodać separator linii na końcu, co po prostu wydrukować.

+1

Pierwszy 'println' powinien również zostać zamieniony na' print'. – maba

+0

@maba, masz rację. Poprawiono to. – DeadlyJesus

+1

Dzięki za pomoc, zadziałało. Jestem nowym programistą Java i nie zdawałem sobie sprawy, że istnieje inny formularz do wydrukowania wyniku. Jeszcze raz dziękuję za wsparcie. –

3

Zastosowanie System.out.print zamiast System.out.println

26

Można użyć krótszej wersji:

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

java.util.Arrays.toString (theArray) –

0

System.out.println zmienia linię po wydrukowaniu oświadczenie. Właśnie dlatego twoje elementy tablicy nie pojawiają się w jednym wierszu. Zamiast tego spróbuj użyć System.out.print i to wystarczy.

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

wyjściowe (na przykład)

[1,2,5,3,7]

0

Zastosowanie System.out.print() w miejscu Systemu .out.println() w całym kodzie, ponieważ jeśli użyjesz System.out.println() nowa linia zostanie wydrukowana po naszym wyjściu na konsoli za każdym razem, gdy zostanie wywołana, ale jeśli użyjesz System.out.print() wydrukuje to, co przekazujesz jako parametr. przez to zmienić swój kod

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};

System.out.print (Arrays.toString (arr) .replace ("[", ""). Replace ("]", "").zastąpić(",", ""));

2

Można to zrobić w jednej linii przy użyciu Java 8

Załóżmy masz tą listę liczb całkowitych

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

Można wydrukować wszystkie elementy w jeden strzał w ten sposób

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

Lub w ten sposób

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

Wynik

1 2 3 4 5 6 7 8 9 
0

Tylko jedną małą zmianę w kodzie: Array

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

wyjściowy: [ 1 2 3 4 5 6 7 8 9 10 ]

Powiązane problemy