【发布时间】:2018-09-20 02:54:42
【问题描述】:
我这里有这个数组,它接受strings 值这是我的拼图板视图,
现在一切正常,但数组是硬编码的,我需要从0-4 随机生成字符串。
我试图得到一个random char 并把它作为string 但这没有用。任何提示都会很好。
Random rand = new Random();
char c = (char)(rand.nextInt(5) + '0');
StringBuilder sb = new StringBuilder();
sb.append(c);
String[] debug_board_state = new String[7];
debug_board_state[0] = "0,3,0,0,3,0,2";
debug_board_state[1] = "1,0,2,0,0,1,2";
debug_board_state[2] = "0,2,0,0,0,0,0";
debug_board_state[3] = "0,0,3,0,3,0,4";
debug_board_state[4] = "2,0,0,0,0,1,0";
debug_board_state[5] = "0,1,0,0,1,0,2";
debug_board_state[6] = "2,0,3,0,0,2,0";
更新。
感谢用户的回答,我能够得到随机矩阵,虽然我遇到了另一个问题,但我需要对矩阵做更多的事情,所以我不想把它打印出来。这是代码
static private final int WIDTH_EASY = 7;
protected void InitializeEasy() {
Random rand = new Random();
String[][] debug_board_state = new String[7][7];
for (int row = 0; row < debug_board_state.length; row++) {
for (int column = 0; column < debug_board_state[row].length; column++) {
debug_board_state[row][column] = String.valueOf(rand.nextInt(5));
}
}
for (int row = 0; row < debug_board_state.length; row++) {
for (int column = 0; column < debug_board_state[row].length; column++) {
System.out.print(debug_board_state[row][column] + " ");
}
};
for (int i = 0; i < WIDTH_EASY; ++i) {
StringTokenizer tokenizer = new StringTokenizer (debug_board_state[i][i], ",");
int column = 0;
while(tokenizer.hasMoreTokens()) {
String token = tokenizer.nextToken();
getCurrentState().board_elements[i][column] = new BoardElement();
getCurrentState().board_elements[i][column].max_connecting_bridges = Integer.parseInt(token);
getCurrentState().board_elements[i][column].row = i;
getCurrentState().board_elements[i][column].col = column;
if (getCurrentState().board_elements[i][column].max_connecting_bridges > 0) {
getCurrentState().board_elements[i][column].is_island = true;
}
++column;
}
}
}
字符串 Tokenizer 适用于 1d 数组但不适用于 2d,我需要与 StringTokenizer 执行相同操作并将其应用于矩阵的东西。我收到以下错误
java.lang.NullPointerException: Attempt to read from field Island_and_Bridges.Hashi.BoardElement[][] Island_and_Bridges.Hashi.BoardState$State.board_elements on a null object reference
【问题讨论】:
-
你为什么不简单地使用
String[][]作为你的板,因为你坚持它是一个字符串?还有,什么没用?弄清楚为什么它不起作用? -
二维数组在这种情况下要好得多。您可以使用
array[0][0] = "0"访问它 -
我从未使用过 2d 数组,您能回答我如何实现这一点吗?
标签: java android arrays random