public static String generate(){
StringBuffer stringBuffer = new StringBuffer();
for(int i = 0; i < TicTacToeUtil.NUM_OF_SPACES + 1; i++){
for(int j = 0; j < TicTacToeUtil.NUM_OF_SPACES + 1; j++) {
stringBuffer.append("1");
}
stringBuffer.append(" ");
}
String finalString = stringBuffer.toString();
return finalString;
}
上面的代码基本上是一个游戏,NUM_OF_SPACES = 2,所以打印将是“111 111 111”,但是,我想用“X”或“O”替换所有1,这是随机选择的这两个字符。例如,“XOX XOO OOO”,这是随机生成的。提前致谢。
答案 0 :(得分:2)
您可以使用Random#nextBoolean()
方法随机获取true
或false
。如果值为true
,请附加'X
。否则追加'O'
:
public static String generate()
{
Random r = new Random(); // create a Random object
StringBuilder stringBuilder = new StringBuilder();
for (int i = 0; i < 2 + 1; i++) {
for (int j = 0; j < 2 + 1; j++) {
if (r.nextBoolean()) { // r.nextBoolean() return 'true' or 'false'
stringBuilder.append("X");
} else {
stringBuilder.append("O");
}
}
stringBuilder.append(" ");
}
String finalString = stringBuilder.toString();
return finalString; // return stringBuilder.toString();
}
答案 1 :(得分:0)
您可以使用Random
类生成随机数。在这里,我使用Random类中的nextBoolean()
方法随机生成布尔值。
public static String generate() {
StringBuilder stringBuilder = new StringBuilder();
Random r = new Random(); // create a Random object
for (int i = 0; i <TicTacToeUtil.NUM_OF_SPACES+ 1; i++) {
for (int j = 0; j <TicTacToeUtil.NUM_OF_SPACES + 1; j++) {
if (r.nextBoolean()) { // r.nextBoolean() return 'true' or 'false'
stringBuilder.append("X");
} else {
stringBuilder.append("O");
}
}
stringBuilder.append(" ");
}
String finalString = stringBuilder.toString();
return finalString;
}
我选择TicTacToeUtil.NUM_OF_SPACES
的值为2
,输出如下,
XXX XOO XXX
我将StringBuffer
替换为StringBuilder
,这是常见做法。 (我认为StringBuffer
类被复制了。)