Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/reporting-services/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 你能把字符与==进行比较吗?_Java_Char_Compare_Equals - Fatal编程技术网

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

Java 你能把字符与==进行比较吗?,java,char,compare,equals,Java,Char,Compare,Equals,对于字符串,您必须使用等于来比较它们,因为==只比较引用 如果将chars与==进行比较,是否会得到预期的结果 我在stackoverflow上见过类似的问题,例如 但是,我还没有看到有人询问在字符上使用==的问题。是的,char与任何其他基本类型一样,您可以通过=对它们进行比较 您甚至可以直接将字符与数字进行比较,并在计算中使用它们,例如: public class Test { public static void main(String[] args) {

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

如果将chars与==进行比较,是否会得到预期的结果


我在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()
。如果您只是尝试一下,您会立即知道,因为它不会编译。一点研究,一点逻辑思考,然后你会回答你自己的问题。如果你想编程,这两种技能都是必要的,所以你应该现在就开始磨练这些技能。