gpt4 book ai didi

java - 尝试使用种子值生成随机字符来测试程序。以及将随机生成的 int 转换为 char

转载 作者:行者123 更新时间:2023-11-30 07:07:09 24 4
gpt4 key购买 nike

这就是我试图用种子值 9999 打印的内容(参见链接中的图像)。该程序要求用户输入 int 值,我已经使用 getSeed() 检查了主类中的错误。另外忽略输入文件。

public static void main(String[] args) throws IOException{
int seed = getSeed();
Scanner inFile = new Scanner(new FileReader("input.txt"));
while(inFile.hasNext()){
System.out.println(inFile.nextLine());
Board b = new Board(seed);
}
}

Board Class

当我运行程序时,收到空指针错误。我也想知道如何正确转换为 char。

感谢您的见解。

public static int getSeed(){
Scanner sc = new Scanner(System.in);
int userInput;
while(true){
try{
System.out.println("Enter an integer seed value greater than 0: ");
userInput = Integer.parseInt(sc.next());
if( userInput > 0)
return userInput;
}
catch(NumberFormatException e){
System.out.println("Invalid!");
}
}


}

最佳答案

您的板类有几个错误:

  1. Board[][]尚未初始化,因此出现空指针异常

  2. 在函数resetBoard()中,你应该让board[i][j] = randomChar,反之亦然。

3.循环应在 4 处结束,以便得到 4*4 的棋盘。你所拥有的将给出一个 5*5 数组。

我已将类重写为:

import java.util.Random;

/**
* Created by derricknyakiba on 07/10/2016.
*/
public class Board {

private char[][] board;
private boolean[][] visited;
private String word;

public Board(int seed){
board = new char[4][4];
Random rand = new Random(seed);
for(int i = 0 ; i < 4 ; i++){
for( int j = 0 ; j < 4 ; j++ ){
char randomChar = (char) (rand.nextInt(27) + 65);
board[i][j] = randomChar; }
}
printBoard();

}
public void printBoard(){
for(int i = 0 ; i < 4 ; i++){
for( int j = 0 ; j < 4 ; j++ ){
System.out.print( board[i][j] + " ");
}
System.out.println();
}
}
}

关于java - 尝试使用种子值生成随机字符来测试程序。以及将随机生成的 int 转换为 char,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39902737/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com