如何比较 Java 中的字符
How to comapre chars in Java
我为计算器写了一个代码,我使用 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 不是原始类型之一,这就是为什么你将它与 equals()
进行比较的原因 thevindu
你可以只做 thevindu == '+'
正如其他人所说,使用==可以直接比较字符。这是因为对于计算机来说,字符只是一个数字;只有你定义它应该被解释为什么(当你声明变量时)将小写 'a' 与 int 97 分开。所以即使在自然语言中询问变量是否“等于”字母 'a' 很奇怪,对计算机来说这很有意义。
字符串不能以这种方式进行比较,因为它们是非原始的;它们实际上是一个字符数组,不能直接比较。
我为计算器写了一个代码,我使用 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 不是原始类型之一,这就是为什么你将它与 equals()
进行比较的原因 thevindu
你可以只做 thevindu == '+'
正如其他人所说,使用==可以直接比较字符。这是因为对于计算机来说,字符只是一个数字;只有你定义它应该被解释为什么(当你声明变量时)将小写 'a' 与 int 97 分开。所以即使在自然语言中询问变量是否“等于”字母 'a' 很奇怪,对计算机来说这很有意义。
字符串不能以这种方式进行比较,因为它们是非原始的;它们实际上是一个字符数组,不能直接比较。