char比较不起作用。我该怎么做呢?

时间:2015-02-19 00:12:54

标签: java

我有一个声明  if(x [i] .equals(''))(我将char数组的一个元素与空格字符进行比较以查看它是否为空格) 这是一个错误。 所以我用谷歌搜索它,发现你不能用原语做到这一点。 我还发现==没有比较值。 因此,就我的研究而言,你无法比较原语的价值。 这是真的?如果不是,你如何比较它们?

4 个答案:

答案 0 :(得分:1)

==用于比较基元的值和引用类型的“引用值”(即,看两个引用类型变量是同一个实例,因为它们具有相同的内存地址值)。使用==进行char比较,int比较,longdoublefloat,...

您可以在The Java Tutorials>中阅读更多相关信息。 Equality, Relational, and Condition Operators,以及§ 15.21 of the JLS,其中声明:

  

15.21.1。数值等式算子==和!=

     

如果左侧操作数的值等于右侧操作数的值,则==运算符生成的值为true。否则,结果是错误的。

  

15.21.3。参考等式运算符==和!=

     

在运行时,如果操作数值都为null或者两者都引用相同的对象或数组,则==的结果为true;否则,结果是错误的。

答案 1 :(得分:0)

==用于比较基元,例如字符比较:

@Test
public void baz() {
    char space = ' ';
    assertTrue(space == ' ');
}

答案 2 :(得分:0)

字符也是Ascii-Code中的数字。空格由32表示,因此您可以测试if(x [i] == 32)。

答案 3 :(得分:0)

原始数据类型没有方法equals,请尝试进行空格字符检查:

if(32 == x[i]) {
    //its a space
}

OR

if(' ' == x[i]) {
    //its a space
}

OR

if(Character.isSpaceChar(x[i])) {
    //its a space
}