所以我正在制作二进制到十进制转换器,如果用户输入非法参数,我应该捕获无效字符。我相信我有正确的方法来捕捉任何不是0或1的字符。 但是,当我尝试将此方法实现到我的主要方法parseBinary时,它表示它"无法找到符号"非法(iChar)。
我无法再将任何参数添加到parseBinary ,因为用户只应输入一个0&1;和1的字符串。我很好奇,如果因为这个限制我没有采用这种方法,但这是我知道的唯一方法。我是新手。非常感谢任何/所有帮助。
public static int parseBinary(String binary) throws NumberFormatException {
if (!isBinary(binary)) {
throw new NumberFormatException("Invalid Format for a Binary String - Illegal character: " + illegal(iChar));
}
int power = 0;
int decimal = 0;
for (int i = binary.length() - 1; i >= 0; i--) {
if (binary.charAt(i) == '1') {
decimal += Math.pow(2, power);
}
power++;
}
return decimal;
}
public static boolean isBinary(String binary) {
for (char ch : binary.toCharArray()) {
if (ch != '1' && ch != '0'){
return false;
}
}
return true;
}
public static char illegal(String iChar)
{
char test = 0;
char arr[] = iChar.toCharArray();
for(char cha : arr)
{
if (cha != '1' && cha != '0')
{
test = cha;
}
}
return test;
}
答案 0 :(得分:1)
正如@mureinik所说 而不是做
#if DEBUG
[HtmlTargetElement("button", Attributes = "tooltip")]
#endif
[HtmlTargetElement("*", Attributes = "tooltip")]
您必须将二进制文件传递给非法方法
将其更改为
throw new NumberFormatException("Invalid Format for a Binary String - Illegal character: " + illegal(iChar));