为什么我的java if语句不起作用并给我这个错误:"二元运算符'&&''的错误操作数类型?

jdc*_*987 2 java arrays if-statement operators

我有这个代码:

int i;
for (i = 0; i < 13; ++i) {
    if (hand[i].charAt(0) == 'A' || 'B' && hand[i].charAt(1) == 'C') 
        System.out.println(hand[i]);
        }
Run Code Online (Sandbox Code Playgroud)

基本上我想要做的是,如果每个数组元素中索引0处的字符是A或B,并且每个数组元素中第二个索引处的字符是C,我希望打印这些元素.它适用于一个字符,但当我把它放在第一部分时,它给了我这个错误:"二元运算符'&&''的错误操作数类型.我该如何解决这个问题?

谢谢.

Pet*_*rey 5

你不能写

hand[i].charAt(0) == 'A' || 'B'
Run Code Online (Sandbox Code Playgroud)

也许你打算写

hand[i].charAt(0) == 'A' || hand[i].charAt(0) == 'B'
Run Code Online (Sandbox Code Playgroud)

BTW你可以写

"AB".indexOf(hand[i].charAt(0)) >= 0
Run Code Online (Sandbox Code Playgroud)

这样,如果您愿意,可以添加更多字母.

然而,编写整个事情的最清晰的方式可能是

if (hand[i].startsWith("AC") || hand[i].startsWith("BC"))
Run Code Online (Sandbox Code Playgroud)