我写了一个计算器代码,我使用char
变量来获得数学运算符(+, -, *, /)
。我需要检查哪个操作符做了用户输入,但由于某种原因,这段代码不工作。如何在Java中比较char
?
import java.util.Scanner;
public class test_2 {
public static void main(String args[]) throws InterruptedException {
double val1, val2, total;
char thevindu;
Scanner input = new Scanner (System.in);
System.out.println("enter frist number");
val1 = input.nextDouble();
System.out.println("type operation");
thevindu = input.next().charAt(0);
System.out.println("enter second number");
val2 = input.nextDouble();
if (thevindu.equals ("+")) {
}
}
}
由于String不是基本类型之一,这就是为什么您将thevindu
与equals()
进行比较,您可以只做thevindu == '+'
正如其他人所说,可以使用==直接比较字符。这是因为对计算机来说,字符只是一个数字;只有您定义了它应该被解释为什么(当您声明变量时)才能将小写'a'与int 97区分开来。所以即使在自然语言中询问一个变量是否相等对于字母"a"来说很奇怪,但对于计算机来说却很有意义。
字符串不能以这种方式进行比较,因为它们是非原语;它们实际上是一个字符数组,不能直接比较。