我有一个Tic-Tac-Toe consol游戏的任务,但我有点卡住了。教师提供了编码标准和驱动程序类来测试我的TicTacToe.java。如果我在PlayTicTacToe.java的驱动程序类中运行以下命令,那么一切都很好。
TicTacToe ttt = new TicTacToe();
ttt.playGame();
但是如果我使用教师提供的那个(下面),我会收到错误,我不知道为什么。
Scanner s = new Scanner(System.in);
TicTacToe tictactoe = new TicTacToe('Sally', 'John');
System.out.print(“Would you like to play a game? Y/N: ”);
String play = s.nextLine();
while(play.equals('Y'))
{
tictactoe.playGame();
System.out.print(“Would you like to play a game? Y/N: ”);
play = s.nextLine();
}
TicTacToe tictactoe1 = new TicTacToe(“Sally”, “John”);
TicTacToe tictactoe2 = new TicTacToe(“Sally”, “John”);
// this will show true
System.out.println( tictactoe1.equals(tictactoe2) );
// this will invoke the toString as shown above
System.out.println( tictactoe1 );
我得到的错误是TicTacToe tictactoe = new TicTacToe('Sally','John');它会在'Sally'上生成一个带有红色下划线的错误'无效常量包机'
有什么建议吗?
答案 0 :(得分:2)
在java中,单引号用于表示字符(而不是字符串),因此在单引号内只能有一个字符。
更改该行以使用双引号:
new TicTacToe("Sally", "John");
答案 1 :(得分:1)
该代码在名称('Sally', 'John')
周围有单引号,而不是双引号("Sally", "John")
。虽然有些语言可以使用(例如Python),但Java不允许这样做。
答案 2 :(得分:1)
在Java中,包含在一对'中的任何东西'表示一个字符,而“表示一个字符串。
你提供的'莎莉'错了,把它换成“莎莉”。
即。 'S'有效,但'S'不是。
答案 3 :(得分:0)
变化:
TicTacToe tictactoe = new TicTacToe('Sally', 'John');
为:
TicTacToe tictactoe = new TicTacToe("Sally", "John");
假设TicTacToe
构造函数需要一个String。 'Sally'
不是String
。
答案 4 :(得分:0)
sally
标有单引号('
)。你需要用双引号("
)标记它。