【问题标题】:Reading Spaces from a Char Array in Java [duplicate]从 Java 中的字符数组中读取空格 [重复]
【发布时间】:2019-03-26 08:38:32
【问题描述】:

我正在尝试制作一个将String 转换为Binary 的程序。为此,我将用户输入转换为 char 数组。使用for 循环逐一读取char 数组中的字符。

我的问题是如何从 char 数组中读取空格。这是我的代码。

    for(int i = 0 ; i < UserInput.length() ; i++) {
    char c = UserInput.charAt(i);

        if (Character.isLetter(c)){
            System.out.print ("letter");
        }
        else if (Character.isDigit(c)){
            System.out.print ("number");
        }
        else if (c== " "){
            System.out.print ("space");
        }
        else
        {
            System.out.println ("Special Char");
        }
    }

错误显示二元运算符 '=='else if ((c) == " ") 的操作数类型错误

【问题讨论】:

    标签: java arrays string char


    【解决方案1】:

    c 是字符类型,您正在尝试将其与字符串类型的 " " 进行比较,如果您想检查 c 是否为空格,则应将其与 ' ' 进行比较也是字符类型。

    【讨论】:

      【解决方案2】:

      您正在尝试将字符与字符串进行比较。 这就是错误的原因。 尝试使用

      Character.isSpaceChar(c)

      希望这对你有用。

      【讨论】:

      • isSpaceChar 考虑到更多类型的空白,而不仅仅是基本空格(ASCII 0x20,Unicode U+0020),因为给定的代码可能不是 OP 想要的。
      【解决方案3】:

      您不能将字符串与数组进行比较。

      一个空格字符用' '而不是" "表示

      只要改变这个,

      if (c== " ")
      

      if (c== ' ')
      

      【讨论】:

        【解决方案4】:

        虽然

        if(c==' ')
        

        适用于标准空白字符实际上有多种不同类型的空白,例如不间断空格。

        但就像字母和数字一样,Character 中已经存在一个函数来检查字符是否是这些空格中的任何一个:

        if(Character.isWhitespace(c))
        

        【讨论】:

          猜你喜欢
          • 2016-06-04
          • 2018-02-05
          • 2019-09-10
          • 1970-01-01
          • 2021-02-02
          • 2019-02-21
          • 2018-06-25
          • 2011-09-11
          • 1970-01-01
          相关资源
          最近更新 更多