Java驱动程序类错误

时间:2012-02-11 23:02:05

标签: java ms-word console-application

我有一个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'上生成一个带有红色下划线的错误'无效常量包机'

有什么建议吗?

5 个答案:

答案 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标有单引号(')。你需要用双引号(")标记它。