Java Character.forDigit始终返回null

Java Character.forDigit始终返回null,java,Java,给定一个字符,我想知道它是否是十六进制字符。从各种论坛上,我了解到我们也可以通过Integer类来实现它。但是想知道下面的代码中有什么错误 Character.forDigit('C',16) 根据,对于上述代码,如果其不是有效的十六进制字符,则返回空字符('\u0000')。请指出问题所在。基数错了吗?我用一段代码进行了验证: if(Character.forDigit('C',16) == '\u0000') { System.out.println("Invalid Charac

给定一个字符,我想知道它是否是十六进制字符。从各种论坛上,我了解到我们也可以通过
Integer
类来实现它。但是想知道下面的代码中有什么错误

Character.forDigit('C',16)
根据,对于上述代码,如果其不是有效的十六进制字符,则返回空字符(
'\u0000'
)。请指出问题所在。基数错了吗?我用一段代码进行了验证:

if(Character.forDigit('C',16) == '\u0000') {
    System.out.println("Invalid Character");
}

不,您使用它的方式不正确。
试试这个:
Character.forDigit(12,16)

你会发现出了什么问题

另见:


不,您使用它的方式不正确。
试试这个:
Character.forDigit(12,16)

你会发现出了什么问题

另见:


字符。forDigit(int,int)
接受一个int并返回相应的字符,而不是像您这样做。

字符。forDigit(int,int)
接受一个int并返回相应的字符,而不是像您这样做。

您正在寻找的方法是


Character.forDigit()
的工作原理与其他人已经指出的相反。

您正在寻找的方法是


Character.forDigit()
与其他人已经指出的情况相反。

十六进制字符在Java中表示前缀为“0x”。因此,验证代码总是以“无效字符”的形式返回

尝试使用前缀。 例如:


十六进制字符在Java中表示,前缀为“0x”。因此,验证代码总是以“无效字符”的形式返回

尝试使用前缀。 例如:

if (Character.digit('C',16) == -1) {
    System.out.println("Invalid Character");
}
if(Character.forDigit(0xC,16)=='\u0000'){
            System.out.println("Invalid Character");
}