2013-05-15 7 views
7

Ich würde gerne wissen, wenn jemand mir helfen könnte zu verstehen, warum meine Array-Ergebnis nicht in einer einzigen Zeile kommt. Die Ergebnisse der nachfolgenden Code gedruckt wird als:Wie drucke ich die Ergebnisse eines Arrays in einer einzigen Zeile?

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

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

Irgendwelche Gedanken darüber, was ich falsch mache, zu den Ergebnissen kommen nicht in der Linie?

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

Verwenden Sie eine konsistente und logische Gedankenstrich für Codeblöcke. Die Einrückung des Codes soll den Leuten helfen, den Programmfluss zu verstehen! –

+3

Verwenden Sie 'System.out.print' anstelle von' System.out.println'. – devnull

+1

Wenn Sie alles auf einer Zeile haben wollen, verwenden Sie 'print' anstelle von' println' – NilsH

Antwort

5

ersetzen System.out.println durch System.out.print wie folgt aus:

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

println eine Linie Separator am Ende hinzufügen, was Sie gerade gedruckt.

+1

Die erste 'println' sollte auch durch' print' ersetzt werden. – maba

+0

@maba, du hast recht. Korrigiert das. – DeadlyJesus

+1

Danke, dass du geholfen hast. Ich bin neu in Java Programmierung und ich habe nicht erkannt, dass es ein anderes Formular zum Ausdrucken gibt. Danke nochmal für die Unterstützung. –

3

Verwenden System.out.print statt System.out.printin

26

können Sie kürzere Version verwenden:

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

java.util.Arrays.toString (theArray) –

0

System.out.printin ändert die Zeile nach der Anweisung zu drucken. Aus diesem Grund kommen Ihre Array-Elemente nicht in einer Zeile zusammen. Versuchen Sie stattdessen und das würde den Trick tun.

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

Output: (beispielsweise)

[1,2,5,3,7]

0

Verwendung System.out.print() am Ort des Systems .out.println() im gesamten Code, weil Wenn Sie System.out.println() verwenden, wird ein neues Zeilenzeichen nach unserer Ausgabe auf der Konsole jedes Mal gedruckt, wenn es aufgerufen wird, aber wenn Sie System.out.print() verwenden Es wird gedruckt, was Sie als Parameter übergeben. So ändern Code

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 ("[", ""). Ersetzen ("]", "").ersetzen (",", ""));

2

Sie können dies in einer Zeile tun mit Java 8

Angenommen, Sie haben diese Liste von ganzen Zahlen

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

Sie können auf einen Schlag auf diese Weise alle Elemente drucken

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

Oder auf diese Weise

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

Ergebnis

1 2 3 4 5 6 7 8 9 
0

machen nur eine kleine Änderung an Ihrem Code:

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

Output-Array: [ 1 2 3 4 5 6 7 8 9 10 ]

Verwandte Themen