0

これは私のクラスです。私はprint()メソッドを取得して、配列の上に水平線を、配列の下に別の線を印刷しようとしています。私はまた、配列内の各数値の間に垂直線を持っていたい。さて、私は水平線を固定しました。今では、配列の始めと終わりに縦線をどのように置くのかが分かりません。forループを使って水平線と垂直線を作成する方法は?

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

これは私の出力である:

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 

私の出力は次のようになります。あなたが作成したくない場合は

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

あなたの印刷機能でループの最初のトリックを行います。 – Taelsin

+0

さて、配列の始めと終わりに縦線を追加するのはどうですか?私は何を忘れていますか? – Miranda

答えて

0

は、あなたのforループのラインSystem.out.println();外を移動します各ダッシュ文字の後に新しい行。

+0

よろしくお願いいたします。それは前に働いていたようではありませんでしたが、今はそうです。私はまだ私の配列として線を作る方法を理解していない。気にしない、私はその部分を分かった。私はちょうど今垂直線についている。 – Miranda

0

は、このループの外にprintln()を取る:

for(int n = 0; n < array.length; n++) 
{ 
    System.out.print("-"); 
    System.out.println(); 
} 
関連する問題