【问题标题】:How to check if a char is null如何检查一个字符是否为空
【发布时间】:2018-11-12 18:16:05
【问题描述】:

我想检查 char 是否为空?但为什么这段代码不起作用? 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();
}

【问题讨论】:

  • 字符?为什么不使用字符串?
  • @statosdotcom 因为我希望用户只输入字符
  • 您可以通过以下方式获得结果:String letter = enterletter.getText().toString().trim(); // 这将删除空格 if(letter.length()<1){ Toast.makeText(getApplicationContext(), "Please enter a letter!", Toast.LENGTH_LONG).show(); }
  • @burger ,检查下面的答案会起作用。

标签: java android


【解决方案1】:

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

您还想检查letterChar == ' ' 是空格还是空字符串?既然你那里有空间。

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

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

【讨论】:

    【解决方案2】:

    从您的代码看来,您使用的是 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')
    

    【讨论】:

      【解决方案3】:

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

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

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

      【讨论】:

        猜你喜欢
        • 2012-05-23
        • 2013-01-28
        • 2011-11-25
        • 2012-03-23
        • 2011-05-29
        • 2016-05-17
        相关资源
        最近更新 更多