使用&运算符与charAt()

时间:2014-08-14 11:36:59

标签: java

我想检查一个单词中是否包含字母'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--;

4 个答案:

答案 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--;
   }