如何检查char是否为null

时间:2018-06-03 04:01:01

标签: java android

我想检查char是否为null?但为什么这段代码不起作用? letterChar == null也无效。我搜索了许多问题,但没有看到任何解决方案,大多数解决方案都是String

String letter = enterletter.getText().toString();
char letterChar = letter.charAt(0);


if(letterChar == ' ' || letterChar == NULL) // this is where the code won't works
{
    Toast.makeText(getApplicationContext(), "Please enter a letter!", Toast.LENGTH_LONG).show();
}

3 个答案:

答案 0 :(得分:1)

char不能是null,因为它是原始的,因此您无法检查它是否等于null,您必须找到解决方法。

您是否也想检查letterChar == ' '空格或空字符串?既然你有空间。

前两个答案here可能有助于您either先检查String letter是否为空。

orchar letterChar转换为int并检查它是否等于0,因为char的默认值是\u0000 - (ascii表上的nul字符,当你说letterChar == null)时,你所检查的是空引用,而不是空引用 - 当施法时0

答案 1 :(得分:0)

char 是原始数据类型,因此不能用于检查 null。

对于您的情况,您可以这样检查。

        if (letterChar  == 0) //will be checked implicitly
        {
            System.out.println("null");
        }
        //or use this
        if (letterChar  == '\0')
        {
            System.out.println("null");
        }

答案 2 :(得分:-1)

从您的代码中看起来您使用Unicode并且您搜索的方法是 Character 类(java.lang)

Character.isLetter(ch);

它还包含许多可以为您提供的有用的静态方法。 如果是这样,代码将是

String letter = enterletter.getText().toString();
char letterChar = letter.charAt(0);

if(!Character.isLetter(letterChar))
{
    Toast.makeText(getApplicationContext(), "Please enter a letter!", Toast.LENGTH_LONG).show();
}

但如果我需要回答你的问题(不考虑你的目标),那么你需要的代码取决于你的意思是“is char null”。

在Java中,char不能== null。 如果要检查它是否不是空白区域,则需要执行

 if (ch == ' ')

如果您想检查是否没有断路器(空格,HT,VT,CR,NL等),您应该在上面提出的内容中添加以下内容:

if (ch == ' ' || ch == '\t' || ch == '\r' || ch == '\n' || ch == '\x0b')