涉及char和String

时间:2016-11-06 14:15:23

标签: java string loops

我正在制作一个类似于刽子手游戏的java程序。

程序首先从我的字符串Array中生成一个随机Word。

然后用户必须输入一个字母。如果Word中有字母,则会询问另一封信,直到玩家输入所有字母为止。

如果用户键入的字母不适合Word,那么该程序应该为名为letterWrong的int变量添加+1。 当letterWrong为2时,图像应该改变。 它的3应该改变 它的4应该改变 当它的5,游戏结束。

这是问题所在: 当我输入一个字母时,程序循环并检查Word中是否包含该字母。如果是的话,程序会显示这封信。

当这封信不符合这个词的时候就会出现问题。因为,我必须确保这个词不包含那个字母,如果它没有,那么我必须在int变量字母中添加一个+1Wrong。问题是+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));
    }
}

最好的方法是,检查单词是否包含该特定字母,如果不存在,那么它应该为int变量添加+1。我这样做的方式之前,它在int变量中添加了超过+1的值,因为它在循环中。

3 个答案:

答案 0 :(得分:4)

您可以使用String.contains()

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

这会使word成为一个字符串。我没有编写整个代码,以便为适应留出空间。

答案 1 :(得分: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++;
}

答案 2 :(得分: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();
}