繁体   English   中英

涉及char和String的Java循环问题

[英]Java loop issue involving char and String

我正在制作类似于子手游戏的Java程序。

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

那么用户必须输入字母。 如果单词中包含字母,它将要求输入另一个字母,直到玩家正确键入所有字母为止。

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

这是问题所在:当我键入字母时,程序会循环并检查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));
    }
}

最好的方法是检查单词中是否包含该特定字母,如果没有,则应向int变量添加+1。 以前的方式,自从它在循环内以来,它向int变量添加了+1以上。

您可以使用String.contains()

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

这会使word变成字符串。 我没有写完整的代码,以便留出适应的空间。

正如Itamar Green所说的,您可以使用String.contains()方法检查randomWord包含字母。 如果确实包含字母,请显示字母。 如果不是,请增加letterWrong

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

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

如果我做对了,您可以尝试以下操作:

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();
}

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM