2016-03-28 10 views
0

Also das ist meine Klasse. Ich versuche, die print() - Methode auszudrucken, um eine horizontale Linie über meinem Array und eine andere Linie unter meinem Array auszudrucken. Ich möchte auch vertikale Linien zwischen jeder Zahl in meinem Array haben. Okay, ich habe meine horizontalen Linien fixiert. Jetzt bin ich nur darüber verloren, wie ich vertikale Linien am Anfang und am Ende meiner Arrays platzieren kann.Wie erzeugt man horizontale und vertikale Linien mit einer for-Schleife?

public class Array{ 

private int[] array; 

public Array(int numElements) 
{ 
    array = new int[numElements]; 
} 

public void fill() 
{ 
    for (int i = 0; i < array.length; i++) 
    { 
     array[i] = (int) (10*Math.random()); 
    } 
} 

public void print() 
{ 
    for(int x = 0; x < 2*array.length; x++) 
    { 
     System.out.print("-"); 
    } 
    System.out.println(); 

    for(int i = 0; i < array.length; i++) 
    { 
     System.out.print(array[i]); 
     if(i == array.length - 1) 
     { 
      System.out.println(); 
     } 
     else 
     { 
      System.out.print("|"); 
     } 
    } 

    for(int n = 0; n < 2*array.length; n++) 
    { 
     System.out.print("-"); 

    } 
    System.out.println(); 
} 

public void sort() 
{ 
    int n = array.length; 
    boolean swapped; 

    do 
    { 
     swapped = false; 

     for(int i = 1; i < n; i++) 
     { 
      if(array[i-1] > array[i]) 
      { 
       int tmp = array[i]; 
       array[i] = array[i-1]; 
       array[i-1] = tmp; 
       swapped = true; 
      } 
     } 
    } while(swapped); 
} 

public void printFrequency() 
{ 
    int[] countArray = new int[10]; 
    for(int x : array) 
    { 
     countArray[x]++; 
    } 
    for(int i = 0; i < 10; i++) 
    { 
     System.out.println("There are " + countArray[i] + ", " + i + "'s "); 
    } 
} 
} 

Das ist mein Ausgang:

Original: 
----------- 
1|5|9|3|3 
----------- 
Sorted: 
----------- 
1|3|3|5|9 
----------- 
Frequencies: 
There are 0, 0's 
There are 1, 1's 
There are 0, 2's 
There are 2, 3's 
There are 0, 4's 
There are 1, 5's 
There are 0, 6's 
There are 0, 7's 
There are 0, 8's 
There are 1, 9's 

Original: 
--------------------- 
7|0|5|2|0|1|8|0|7|7 
--------------------- 
Sorted: 
--------------------- 
0|0|0|1|2|5|7|7|7|8 
--------------------- 
Frequencies: 
There are 3, 0's 
There are 1, 1's 
There are 1, 2's 
There are 0, 3's 
There are 0, 4's 
There are 1, 5's 
There are 0, 6's 
There are 3, 7's 
There are 1, 8's 
There are 0, 9's 

Meine Ausgabe sollte wie folgt aussehen:

Original: 
----------- 
|1|5|9|3|3| 
----------- 
Sorted: 
----------- 
|1|3|3|5|9| 
----------- 
Frequencies: 
There are 0, 0's 
There are 1, 1's 
There are 0, 2's 
There are 2, 3's 
There are 0, 4's 
There are 1, 5's 
There are 0, 6's 
There are 0, 7's 
There are 0, 8's 
There are 1, 9's 

Original: 
--------------------- 
|7|0|5|2|0|1|8|0|7|7| 
--------------------- 
Sorted: 
--------------------- 
|0|0|0|1|2|5|7|7|7|8| 
--------------------- 
Frequencies: 
There are 3, 0's 
There are 1, 1's 
There are 1, 2's 
There are 0, 3's 
There are 0, 4's 
There are 1, 5's 
There are 0, 6's 
There are 3, 7's 
There are 1, 8's 
There are 0, 9's 
+0

Die erste in der Druckfunktion für Schleife funktioniert der Trick. – Taelsin

+0

Okay, was ist mit dem Hinzufügen einer vertikalen Linie am Anfang und am Ende meiner Arrays? Was vergesse ich? – Miranda

Antwort

0

Verschieben Sie die Linie System.out.println(); außerhalb des for-Schleife, wenn Sie wollen nicht erstellen eine neue Zeile nach jedem Bindestrich.

+0

Okay, danke. Es erschien nicht unter der vorherigen Arbeit, aber jetzt ist es. Ich verstehe immer noch nicht, wie man die Linie so lange wie mein Array macht. Vergiss es, ich habe diesen Teil herausgefunden. Ich stecke jetzt nur noch an den senkrechten Linien fest. – Miranda

0

nehmen Sie die println() aus dieser Schleife:

for(int n = 0; n < array.length; n++) 
{ 
    System.out.print("-"); 
    System.out.println(); 
}