2013-05-15 6 views
7

Vorrei sapere se qualcuno mi può aiutare a capire perché il risultato del mio array non viene in una sola riga. I risultati del codice qui sotto viene stampato come:Come stampare i risultati di un array in una singola riga?

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

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

Qualche idea su ciò che sto facendo male ai risultati non entra in linea?

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

Utilizzare un trattino coerente e logico per blocchi di codice. Il rientro del codice ha lo scopo di aiutare le persone a capire il flusso del programma! –

+3

Utilizzare 'System.out.print' invece di' System.out.println'. – devnull

+1

Se si desidera tutto su una riga, utilizzare 'print', invece di' println' – NilsH

risposta

5

Sostituire System.out.println da System.out.print come questo:

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

println aggiungere un separatore riga alla fine di quello che hai appena stampato.

+1

Il primo 'println' dovrebbe anche essere sostituito con' print'. – maba

+0

@maba, hai ragione. Corretto. – DeadlyJesus

+1

Grazie per l'aiuto ha funzionato. Sono nuovo sulla programmazione Java e non mi sono reso conto che c'era un altro modulo per stampare i risultati. Grazie ancora per il supporto. –

3

Uso System.out.print invece di System.out.println

26

È possibile utilizzare la versione più corta:

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

java.util.Arrays.toString (theArray) –

0

System.out.println cambia la linea dopo la stampa la dichiarazione. Questo è il motivo per cui gli elementi dell'array non vengono visualizzati in un'unica riga. Provare a utilizzare System.out.print invece e quello farebbe il trucco.

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

uscita: (per esempio)

[1,2,5,3,7]

0

Usa System.out.print() al posto di sistema .out.println() in tutto il codice perché se si utilizza System.out.println() viene stampato un nuovo carattere di linea dopo il nostro output su console ogni volta che viene chiamato, ma se si utilizza System.out.print() stamperà quello che stai passando come parametro. Quindi modificare il codice per

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 ("]", "").replace (",", ""));

2

È possibile farlo in una sola riga usando Java 8

Supponete di avere questa lista di numeri interi

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

È possibile stampare tutti gli elementi in un colpo solo in questo modo

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

O in questo modo

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

Risultato

1 2 3 4 5 6 7 8 9 
0

Basta fare una piccola modifica al codice: 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("]"); 
    } 
} 

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

Problemi correlati