因此,我正在開發一個簡單的程序,詢問用戶需要多少列和行,然後生成一個字符串,其大小如下代碼(改編自何某種開發商作出回答另一個問題)帶字符串的Java 2D數組,需要添加一個簡單的功能
String[][] grid = new String[int1][int2];
String AB = "_W";
SecureRandom rnd = new SecureRandom();
for (int i = 0; i < grid.length; i++) {
StringBuilder sb = new StringBuilder(int1);
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();
}
}
現在,這有一個錯誤,我似乎無法修復,我收集通過INT1和INT2想要的大小(INT1爲行和INT2是列),但輸出會遵守行數(int2),但似乎並不尊重列號。這裏有一個例子,如果我定義INT1(行)= 3和INT2(列)= 4,這裏的輸出:
_____W__W_
_____W__W_
_____W__WW
正如你可以看到,還有3行,但10列,這是爲什麼?我如何解決它?
我還需要實現一個簡單的插件,我似乎無法得到我的頭。在第一行中,需要(在一個隨機位置,只需要是第一行)char'S',最後一行需要char'E'(也是隨機位置)。他們不能添加到他們各自的列的大小,所以他們需要替換'_'或'W'。任何幫助? :D
它看起來像你需要一個[rubber_duck(https://en.wikipedia.org/wiki/Rubber_duck_debugging) –
「但10列,這是爲什麼?」 < - 因爲你有一個2d的字符串數組,其中一些字符串長度只有1個字符。你每個字符串得到多於1個字符,因爲你不需要重新設置,而是在內部循環中附加到你的StringBuilder sb。無論如何你爲什麼要使用StringBuilder?編輯:由於你沒有清除你的StringBuilder,你的grid [x] [0]將會有1個字符,grid [x] [1]包含2個字符,grid [x] [2] 3個字符等等。 –
啊,你是對的,我會研究它 – Vist4w