我正在爲Java介紹一個類,並且我們有一個處理hang子手遊戲的項目。我有大部分的代碼已經解決了,但是有一個我似乎無法解決的錯誤。Java中的基本Hang子手遊戲(主要涉及字符串操作)
首先,程序提示用戶輸入一個字母和一個他們認爲該字母的空格,然後程序在一系列連字符中顯示一個單詞,如果用戶做出正確的猜測,則相應的字母連字符被替換爲所述字母。
出於測試目的,該詞已默認爲narrow
。
所以,如果我猜的信r
和空間,我是猜指數2,程序就會給我:
Guess a letter: r
Guess a space: 2
Guess: --r---
我遇到的問題是,當我猜指數3對於空間並嘗試猜測下一個r,該程序只給了我以前的相同輸出。
我們不允許使用數組或字符串生成器,因爲我們還沒有討論過它們。
這裏是我的變量:
// default word for testing
String blank = "narrow";
// variables to manipulate the string
String start = "";
String end = "";
String word = "";
// variables for input and output
// input is used for the user's letter guess
String input;
// space is used for the user's index guess
String space = "";
// guess is used at the end to display the word to the user and set equal to word after
// it has been manipulated
String guess = "";
這裏就是串被操縱的代碼。
for (int i = 0; i < blank.length(); i++) {
if (i == blank.indexOf(input)) {
start = guess.substring(0, i);
end = guess.substring(i + 1);
word = start.concat(input).concat(end);
}
}
我認爲它與if statement
的事,但我已經嘗試了一些其他的事情,他們都沒有奏效。任何幫助,將不勝感激。
謝謝。
如果問題是字符串操作,那麼爲什麼不把自己的包裝類'的char []',那也可以擁有到正在實際字的引用猜到了。操作起來會更容易,因爲它不是不可變的。你可以填寫字符。 –
我不確定我們是否可以這樣做,但無論如何感謝 – Equinoxinator