2016-11-06 34 views
0

我正在製作一個類似於hangman遊戲的java程序。涉及char和String的Java循環問題

程序首先從我的字符串Array中生成一個隨機的Word。

然後用戶必須鍵入一個字母。如果Word中有字母,它會要求另一封信,直到玩家輸入正確的所有字母。

如果用戶輸入的字母不適合在Word中,那麼程序應該爲名爲letterWrong的int變量添加+1。 當letterWrong爲2時,圖像應該改變。 當它3它應該改變 當它的4它應該改變 當它的5,遊戲結束。

這裏是問題: 當我鍵入一個字母時,程序會循環並檢查Word是否包含該字母。如果是這樣,那麼程序會顯示該字母。

問題出在信件不適合Word的時候。因爲,我必須確保該單詞不包含該字母,如果它不包含,那麼我必須爲int變量letterWrong添加一個+1。問題是循環內的+1。我必須把它放在循環之外。但我不能解決這個問題。

下面的代碼:

char word = edittext.getText().charAt(0); 
for(int i = 0; i<randomWord.length(); i = i+1){ 
    if(randomWord.charAt(i)==word){ 

     textviewArray[i].setText(""+randomWord.charAt(i)); 
    } 
} 

什麼是最好的方式,檢查wheter字包含特定字母,如果它不,那麼就應該添加+1 int變量。我之前做過的方式之前,它在循環內添加了超過+1的int變量。

+2

請刪除上面,因爲它不會阻止向下票的評論,可能會鼓勵他們。請不要發佈此類帖子,而應嘗試改進您的問題,例如發佈一個有效的[mcve],其中包含我們可以編譯,運行和修改的代碼。此外,您已將您的代碼發佈到您的問題中,而不是鏈接 - 對您有好處!如果您決定創建併發布有效的MCVE,請按照相同的步驟 - 將您的代碼文本發佈到您的問題中,而不是鏈接中。 –

+1

不是我的倒票 - 我會等一會兒,看看你是否發佈了一個體面的MCVE。 –

+0

你是否得到它的工作? – ItamarG3

回答

4

您可以使用String.contains()

String a =String.valueOf(word); 
String s = randomWord; 
if(s.contains(a)){ 
    //preform actions 
... 

這將使word爲字符串。我沒有寫出整個代碼,以便爲適應留下空間。

+0

downvoter,請詳細說明 – ItamarG3

+0

不是你的down-voter,但我對這個問題的閱讀表明他可能有一個變量範圍問題,但對於我來說,仍然很難確切地說出問題出在哪裏或什麼,所以我認爲這個答案現階段可能爲時過早。 –

+0

錯了。但是,無論如何,誰在乎'String#的結果包含()',對吧? :D – Tom

0

正如Itamar Green所說,您可以使用String.contains()方法來檢查randomWord是否包含該字母。如果它包含該字母,則顯示該字母。如果不是,則增加letterWrong

char word = edittext.getText().charAt(0); 

if(randomWord.contains(word){ 
    textviewArray[i].setText(""+randomWord.charAt(i)); 
} else { 
    letterWrong++; 
} 
0

如果我得到了它的權利,你可以試試這個:

char word = edittext.getText().charAt(0); 
boolean flag = false; 
if(randomWord.indexOf(word) > -1) { 
    textviewArray[i].setText(""+word); 
} else { 
    ++letterWrong; 
    flag = true; 
} 

if(flag && letterWrong > 1) { 
    changeImage(); 
} 
+0

這很好,謝謝 – adamH