如何比较一个字符来检查它是否为空?

问题描述:

我尝试了下面的内容,但Eclipse会为此引发错误。如何比较一个字符来检查它是否为空?

while((s.charAt(j)== null) 

检查字符是否为null的正确方法是什么?

+1

'char'是一个原始的。 'null'保留为未分配的引用。 – madth3 2013-02-13 01:07:55

+3

是's'字符串?如果这样's.charAt'将返回原始类型'char',而不是对象'Character',所以它不能为空。 'char'数组的默认值是''\ u0000''或者更简单的''\ 0''。你甚至可以使用's.charAt(j)== 0' – Pshemo 2013-02-13 01:09:18

+0

你想检查字符串的结尾吗? – madth3 2013-02-13 01:11:44

检查在进行任何字符检查之前,Strings不是null。通过String#charAt返回的字符以原始char类型,将来也不会null

if (s != null) { 
    ... 

如果你想在同一时间处理来自String一个字符,你可以使用:

for (char c: s.toCharArray()) { 
    // do stuff with char c 
} 

(不像C,NULL终止器检查不是在Java中完成的。)

如果s是一个字符串且不为空,那么您必须尝试g比较“空格”与char。你认为“空间”不是一个角色,空间只是null,但事实是空间是一个角色。因此,而不是null,使用(这是一个空格)来比较字符。

+1

除了这个问题是2.5岁,我发现它*高度*不太可能是他们正在寻找一个空间。 – 2015-07-12 13:31:40

我们无法检查字符是否为空,因为字符是基本数据类型。

+0

这个检查是字符是空格。 'char'不能为'null',因为'char'是一个原始类型。 – Jesper 2015-08-10 13:23:00

+0

谢谢@Jesper你是对的 – 2015-08-11 06:05:42

正确的检查方式char实际上是here

它指出:

将其更改为:if(position[i][j] == 0) 每个char可以与int比较。 默认值是'\u0000',即对于char数组元素为0。 而这正是你所说的空单元,我假设。

char元素的默认值为0,ascii值。 你可以检查字符是否为空。例如:

char ch[] = new char[20]; //here the whole array will be initialized with '\u0000' i.e. 0 
    if((int)ch[0]==0){ 
     System.out.println("char is null"); 
    } 
+0

'char'不能为空,因为它不是引用类型。这是一个原始的。 – xenteros 2017-09-29 07:45:58