我想检查一个单词中是否包含字母't'。如果没有,则整数guessesLeft
将减1。这是我的代码,我在第一行收到错误。
if(word.charAt(1)!='t') & word.chatAt(2)!='t' & word.chatAt(3)!='t' & word.chatAt(4)!='t' & word.chatAt(5)!='t' & word.chatAt(6)!='t' & word.chatAt(7)!='t'{
guessesLeft--;
答案 0 :(得分:6)
您可以使用contains()
检查String
t
是否有 if(word.contains("t"))
if((word.charAt(1)!='t') & (word.charAt(2)!='t')) // remove rest of the logic
// and corrected syntax
现在看看你在做什么?
&
您正在此处使用AND
(非短路)t
进行检查。您正在检查每个索引不是t
而不是至少一个 if((word.charAt(1)=='t') || (word.charAt(2)=='t')) // then it will consider
//at least one t
。
如果你真的想要这样的话,你可以使用你的逻辑
{{1}}
更多内容
什么是短路,什么是非短路布尔?
短路,这意味着如果它没有评估右侧 这不是必要的。作为一个例子,如果&&左手边是假的没有 需要评估右手边的一个。换句话说||如果留下是真的 无需评估右手边。
非短期评估双方总是。
答案 1 :(得分:0)
contains
出了什么问题?
if (!"Word".contains("t")) {
guessesLeft--;
}
答案 2 :(得分:0)
在你的if语句中,
if(word.charAt(1)!='t') //remove the bracket after 't'
答案 3 :(得分:0)
&
运算符执行按位AND运算。要使用逻辑AND操作,您必须使用&&
运算符。
您的代码应如下所示:
if(word.charAt(1)!='t' && word.chatAt(2)!='t' && word.chatAt(3)!='t' && word.chatAt(4)!='t' & word.chatAt(5)!='t' && word.chatAt(6)!='t' && word.chatAt(7)!='t'
{
guessesLeft--;
}