2012-02-11 101 views
0

我有一個任務來製作井字遊戲的consol遊戲,但我有點卡住了。教師提供了編碼和驅動程序類的測試標準來測試我的TicTacToe.java。如果我在PlayTicTacToe.java的驅動程序類中運行以下,那麼所有的工作都很好。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); 

我得到的錯誤是上線井字遊戲井字遊戲=新井字遊戲(「莎莉」,「約翰」);它會在'Sally'上產生一個紅色下劃線'錯誤的常量章程'錯誤

任何建議?

+0

單個字符用單引號''y''表示。字符串使用雙引號'「John」'。所以用雙引號替換單引號。 – 2012-02-11 23:06:08

回答

2

在java中,單引號用於表示字符(不是字符串),所以在單引號內只能有一個字符。

行更改爲使用雙引號:

new TicTacToe("Sally", "John"); 
+0

如果我用引號將它包裹起來,那麼下面的行會打破,如System.out.print(「你想玩遊戲嗎?Y/N:」);現在給出了「令牌上的語法錯誤,刪除這些令牌」的錯誤,整個System.out.print現在被加下紅線。 – David 2012-02-11 23:11:05

+0

它看起來像你使用智能報價(一個微軟的Word)。那些不起作用 - 確保您使用正規報價。 – 2012-02-11 23:12:39

+0

賓果!我應該更好地從單詞到月食切割和粘貼。 – David 2012-02-11 23:18:45

1

該代碼具有環繞名('Sally', 'John')單引號,而不是雙引號("Sally", "John")。雖然有些語言可以使用(例如Python),但Java不允許使用它。

1

在Java中,什麼都裹在一對'代表一個字符,而「表示一個字符串。

您提供‘莎莉’,這是錯誤的,將其更改爲‘莎莉’。

即「S」是有效的,但「SS」是不是。

  • 你的錯誤可能是「無效字符常量」,而不是「無效字符常量」
0

章安格:

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

到:

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

想必TicTacToe構造函數需要一個字符串。 'Sally'不是String

0

sally標有單引號(')。你也需要用雙引號標記它(")。