Java 方法确定字符是否为有效的十六进制数字?
所以我一直得到一个错误,它说如果Character.isValidHexthisChar,16,它在行中找不到符号{我想知道这个方法的格式是否正确?在确定每个字符是否是数字后,我很难确定它是否是有效的十六进制值a-f。这是确定有效性的部分,这是我唯一的错误。我必须将使用isdigit的部分和确定有效性的部分分开如果是十六进制值,我不能组合使用Character.digitthisChar,16!!!请帮助 您可以使用Character.digitthisChar,16,因为您已经用Character.isDigitthisChar过滤掉了0到9 从Character.digit的Javadoc: 如果基数不在最小基数范围内≤ 基数≤ 最大基数或如果 ch的值不是指定基数中的有效数字,-1为 返回 当你说if Character.isValidHexthisChar,16{时,你的类是否命名为Character?如果是,你需要使用完全限定的类名。因为java.lang.Character将对你自己的类进行阴影处理。你看过了吗?这是你应该开始回答这些问题的地方。Java 方法确定字符是否为有效的十六进制数字?,java,methods,character,Java,Methods,Character,所以我一直得到一个错误,它说如果Character.isValidHexthisChar,16,它在行中找不到符号{我想知道这个方法的格式是否正确?在确定每个字符是否是数字后,我很难确定它是否是有效的十六进制值a-f。这是确定有效性的部分,这是我唯一的错误。我必须将使用isdigit的部分和确定有效性的部分分开如果是十六进制值,我不能组合使用Character.digitthisChar,16!!!请帮助 您可以使用Character.digitthisChar,16,因为您已经用Charact
public static boolean isValidHex(String userIn) {
boolean isValid = false;
// The length is correct, now check that all characters are legal hexadecimal digits
for (int i = 0; i < 4; i++) {
char thisChar = userIn.charAt(i);
// Is the character a decimal digit (0..9)? If so, advance to the next character
if (Character.isDigit(thisChar)) {
isValid = true;
}
else {
//Character is not a decimal digit (0..9), is it a valid hexadecimal digit (A..F)?
if (Character.isValidHex(thisChar, 16)) {
isValid = true;
}
else {
// Found an invalid digit, no need to check other digits, exit this loop
isValid = false;
break;
}
}
}
// Returns true if the string is a valid hexadecimal string, false otherwise
return isValid;
}
if (Character.digit(thisChar, 16) != -1) {
isValid = true;
}