2017-06-02 15 views
2

タイトルでは、ランダムな文字列(この場合は "_"と "W")を2次元配列に取り込み、2次元配列とランダムな文字列ジェネレータの両方を作成します私は私が望むように私は行を取得し、これを行う場合は、文字列で作成された配列を移入するために離れてはランダムな文字列で2次元配列を塗りつぶす方法

import java.security.SecureRandom; 

public class Array_Generator { 
public static void main(String[] args) { 

    int row = 5; 
    int col = 5; 
    int[][] grid = new int[row][col]; 
    String AB = "_W"; 
    SecureRandom rnd = new SecureRandom(); 
    for(int i = 0; i < grid.length; i++) { 
     StringBuilder sb = new StringBuilder(row); 
     sb.append(AB.charAt(rnd.nextInt(AB.length()))); 
     sb.toString(); 


    } 
System.out.println(sb); 

を生成見つけることができますが、私は、次のものを行うために離れて見つける傾けます。

助けが必要です。

+0

だから)(sb.toStringで何をしているの?あなたは2次元配列のintを繰り返し処理していますが、何も入れていないので、文字列の2次元配列について質問しています。あなたはどこかで文字列を印刷していますか? – CBredlow

答えて

1

は、次のいずれかの方法である:

import java.security.SecureRandom; 

public class Array_Generator { 

    public static void main(String[] args) { 

     int row = 5; 
     int col = 5; 
     String[][] grid = new String[row][col]; 
     String AB = "_W"; 
     SecureRandom rnd = new SecureRandom(); 
     for (int i = 0; i < grid.length; i++) { 
      StringBuilder sb = new StringBuilder(row); 
      for (int j = 0; j < grid[i].length; j++) { 
       sb.append(AB.charAt(rnd.nextInt(AB.length()))); 
       sb.toString(); 
       grid[i][j] = sb.toString(); 
      } 
     } 

     for (int i = 0; i < grid.length; i++) { 
      for (int j = 0; j < grid[i].length; j++) { 
       System.out.print(""+grid[i][j]); 
      } 
      System.out.println(); 
     } 

    } 
} 

OUTPUT:

WW_W__W__WW__W_ 
__W_WW_WW__WW_W 
__W_W__W_W_W_W_ 
WW_W_WW_W_W_W__ 
WW_W__W___W____ 
+0

あなたの答えも正しいです、私はそれがより完全なあなたに感謝して以来、正しいものとしてマークします。 – MDordio

+0

私も、ありがとう!プログラミングのために楽しい時間を過ごしてください! –

0

2次元(2D)配列を使用しました。そのため、両方の配列を反復処理する必要があります。解決策として、ネストされたforループを使用できます。

  • 最初に2次元配列型をStringに変更します。
  • 次は、その配列にsb.toString();を追加します。
  • その後

for(int i = 0; i < grid.length; i++){ 
    for(int y = 0; y < grid[i].length; y++){ 
     System.out.println(i + " "); 
     System.out.print(y + " "); 
     //Or - System.out.print(grid[i][y] + " "); 
    } 
} 

それともあなたは、それぞれ使用することができます。

for(String[] i : grid){ 
    for(String y : i){ 
     System.out.print(y + " "); 
    } 
    System.out.println(); 
} 
2

gridint[][]あるので、それはString Sを保持することはできません。型を変更し、内側のループでランダムなStringを割り当てます。ここで

// int[][] grid = new int[row][col]; 
String[][] grid = new String[row][col]; 

... 

// sb.toString(); 
grid[i][j] = sb.toString(); 
+0

そうですね。ありがとうございます – MDordio

関連する問題