Java 你能把字符与==进行比较吗?
对于字符串,您必须使用等于来比较它们,因为==只比较引用 如果将chars与==进行比较,是否会得到预期的结果Java 你能把字符与==进行比较吗?,java,char,compare,equals,Java,Char,Compare,Equals,对于字符串,您必须使用等于来比较它们,因为==只比较引用 如果将chars与==进行比较,是否会得到预期的结果 我在stackoverflow上见过类似的问题,例如 但是,我还没有看到有人询问在字符上使用==的问题。是的,char与任何其他基本类型一样,您可以通过=对它们进行比较 您甚至可以直接将字符与数字进行比较,并在计算中使用它们,例如: public class Test { public static void main(String[] args) {
我在stackoverflow上见过类似的问题,例如
但是,我还没有看到有人询问在字符上使用==的问题。是的,
char
与任何其他基本类型一样,您可以通过=
对它们进行比较
您甚至可以直接将字符与数字进行比较,并在计算中使用它们,例如:
public class Test {
public static void main(String[] args) {
System.out.println((int) 'a'); // cast char to int
System.out.println('a' == 97); // char is automatically promoted to int
System.out.println('a' + 1); // char is automatically promoted to int
System.out.println((char) 98); // cast int to char
}
}
将打印:
97
true
98
b
是的,但也不是
从技术上讲,=
比较两个int
s。因此,在类似以下代码中:
public static void main(String[] args) {
char a = 'c';
char b = 'd';
if (a == b) {
System.out.println("wtf?");
}
}
Java正在将行a==b
隐式转换为(int)a==(int)b
不过,这种比较仍然“有效”。
char
s是原语,所以是的。为什么不在IDE中尝试一下呢?@TimBiegeleisen并不太可靠。如果这是字符串,可能有人会尝试String a=“Hello”;字符串b=“你好”;如果(a==b){System.out.println(“Equal”);}
,并得出结论,可以将字符串与=
@DawoodibnKareem进行比较,这是一个好的观点,我没有想到这其中的字符串部分。如果不使用=
,你会怎么做?char
不是对象,因此可以像对字符串一样使用equals()
。如果您只是尝试一下,您会立即知道,因为它不会编译。一点研究,一点逻辑思考,然后你会回答你自己的问题。如果你想编程,这两种技能都是必要的,所以你应该现在就开始磨练这些技能。