我有一个声明 if(x [i] .equals(''))(我将char数组的一个元素与空格字符进行比较以查看它是否为空格) 这是一个错误。 所以我用谷歌搜索它,发现你不能用原语做到这一点。 我还发现==没有比较值。 因此,就我的研究而言,你无法比较原语的价值。 这是真的?如果不是,你如何比较它们?
答案 0 :(得分:1)
==
用于比较基元的值和引用类型的“引用值”(即,看两个引用类型变量是同一个实例,因为它们具有相同的内存地址值)。使用==
进行char
比较,int
比较,long
,double
,float
,...
您可以在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
}