【问题标题】:Too many characters in character literal - trying to check if my value is not within ASCII values '\0'字符文字中的字符过多 - 尝试检查我的值是否不在 ASCII 值 '\0' 内
【发布时间】:2016-09-22 13:04:17
【问题描述】:
/*Visit only nodes with keys*/
    if(root.alpha != '\0'){

    }

正如上面的标题所说。我怎样才能做得更好?我正在尝试检查字符(root.alpha)是否不在该范围内。谢谢。

【问题讨论】:

  • 这里的“内部”是什么意思...在 0x30 和 0x5C 之间?还是只有这两个角色?
  • 您在这里混淆了几件事。 1)一个字符文字(单引号之间的东西)只能包含一个字符。 2) 您只能在 HTML 中使用 &x## 表示法表示字符,而在 Java 中则不能。
  • @JimGarrison 在 ascii 表中字符 #092 和 #048 之间。
  • @ErwinBolwidt 哦,是的,我会用“”代替吗?而且,我该怎么做呢?抱歉,我在研究时在某处读到。

标签: java char


【解决方案1】:

一个不相关的错误导致我来到这里,但我忘记了 '" 在 Java 中不能像在其他一些语言中那样互换。 ' 用于字符文字," 用于字符串文字。

因此,在' 中包含任何长度超过一个字符的序列将导致此编译时错误。

【讨论】:

    【解决方案2】:

    检查字符是否不在十六进制 ASCII 码 48 和 92 的范围内:

    if (root.alpha < 0x48 || root.alpha > 0x92) {
        // ...
    }
    

    即不在范围内=小于开始或大于结束。

    【讨论】:

    • 哦,好吧。我之前对如何表示 ascii 字符感到困惑。谢谢大家!
    猜你喜欢
    • 2019-07-17
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2020-03-25
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多