我尝试了下面的内容,但Eclipse为此抛出了一个错误。
while((s.charAt(j)== null)
检查角色是否为null
的正确方法是什么?
答案 0 :(得分:9)
在进行任何字符检查之前,请检查String
s
是否为null
。 String#charAt
返回的字符是原始char
类型,永远不会是null
:
if (s != null) {
...
如果您尝试一次处理String
个字符,则可以使用:
for (char c: s.toCharArray()) {
// do stuff with char c
}
(与C
不同,NULL
终止符检查不是用Java完成的。)
答案 1 :(得分:6)
检查char
的正确方法实际上是here。
它声明:
将其更改为:
if(position[i][j] == 0)
每个char
都可以与int
进行比较。 默认值为'\u0000'
,即char
数组元素为0。 而这正是你所说的空单元的意思。
答案 2 :(得分:6)
char原语的默认值为0,为ascii值。 你可以检查char是否为null。例如:
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");
}
答案 3 :(得分:0)
我们无法检查字符是否为空,因为字符是原始数据类型。
答案 4 :(得分:0)
您可以使用空字符('\0'
):
while((s.charAt(j)=='\0')
答案 5 :(得分:-2)
如果s
是一个字符串且不为空,那么你必须尝试比较" space"与char。你认为" space"不是一个角色,空间只是null
,但事实是空间是一个角色。因此,使用null
(这是一个空格)代替来与字符进行比较。