[英]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.