Ошибки класса драйвера Java - PullRequest
       5

Ошибки класса драйвера Java

0 голосов
/ 12 февраля 2012

У меня есть задание сделать консольную игру Tic-Tac-Toe, но я немного застрял. Инструктор предоставил критерии кодирования и класс драйвера для тестирования моего 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'); Он генерирует ошибку «недопустимый постоянный чартер» с красным подчеркиванием на «Салли»

Есть рекомендации?

Ответы [ 5 ]

2 голосов
/ 12 февраля 2012

В java одинарные кавычки используются для обозначения символов (не строк), поэтому внутри одинарных кавычек может быть только один символ.

Измените строку, чтобы использовать двойные кавычки:

new TicTacToe("Sally", "John");
1 голос
/ 12 февраля 2012

В Java все, что заключено в пару ', обозначает символ, а "обозначает строку.

Вы предоставляете «Салли», что неправильно, замените его на «Салли».

т.е. «S» является действительным, а «Ss» - нет.

  • Ваша ошибка, скорее всего, «неверная символьная константа», а не «недопустимый константный символ»
1 голос
/ 12 февраля 2012

Этот код имеет одинарные кавычки вокруг имен ('Sally', 'John'), а не двойные кавычки ("Sally", "John"). Хотя с некоторыми языками все в порядке (например, Python), Java не позволяет этого.

0 голосов
/ 12 февраля 2012

sally помечается одинарными кавычками (').Вам тоже нужно пометить его двойными кавычками (").

0 голосов
/ 12 февраля 2012

Изменение:

TicTacToe tictactoe = new TicTacToe('Sally', 'John');

до:

TicTacToe tictactoe = new TicTacToe("Sally", "John");

Предположительно, конструктор TicTacToe ожидает строку. 'Sally' не является String.

...