你能将字符与 == 进行比较吗?



对于字符串,您必须使用等于来比较它们,因为 == 只比较引用。

如果我将字符与 == 进行比较,它会给出预期的结果吗?


我在堆栈溢出上看到过类似的问题,例如

  • 在 Java 中 == 与 equals(( 有什么区别?

但是,我还没有看到一个询问在字符上使用 == 的问题。

是的,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。所以在代码中如下所示:

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

但是,比较仍然"有效"。

相关内容

  • 没有找到相关文章

最新更新