我一直在尝试创建一个程序,如果用户输入 candy
或 C
进入扫描程序,那么程序将执行一些代码,尽管我很难比较这两个变量 .
import java.util.Scanner;
public class StringOrChar
{
public static void main(String[] args)
{
System.out.println("Guess a word or character");
Scanner keyboard = new Scanner(System.in);
String input;
input = keyboard.nextLine();
char c = input.charAt(0);
if (input.equalsIgnoreCase("candy") || c = "C")
{
System.out.println("You guessed correctly.");
}
else
{
System.out.println("Try again...");
}
}
}
在运行程序时,我收到错误“二进制运算符的错误操作数类型'||' “虽然我对如何修复它毫无头绪 . 我知道我可以使用
input.equals("C")
但我想知道如何使用 charAt()
方法 .
3 回答
几个错误,需要纠正 . 虽然
equalsIgnoreCase
足以匹配candy
或Candy
或CANDY
,**字candy
中的任何大写/小写字母1.)
c = "C"
is assignment not comparison .2.)
c
在这里char
,所以需要 compare char with char , not char with String . 所以写c == 'C'
代码应如下所示 .
Code
Ouput
1.)用户类型C.
2.)用户类型c
3.)用户输入糖果或糖果
如果你的意图是允许用户键入
"candy"
或"C"
,你的代码赢了't get the job done even after you fix the compiler errors. It',检查C
的第一个字符,这意味着它将匹配以C
开头的 any 用户输入,包括Charlie
,Caddywumpus
等 . 如果那不是什么你想要的,那么你必须将整个字符串与"C"
进行比较并忘记charAt(0)
:另一方面,如果你真的想允许以C开头的任何输入,你需要在你的问题中明确说明 .
您不需要任何其他检查
编辑:仅处理字符输入