无法从其他公共课程中找到符号

时间:2017-10-24 03:21:06

标签: java cannot-find-symbol

所以我正在制作二进制到十进制转换器,如果用户输入非法参数,我应该捕获无效字符。就像用户在二进制字段中输入1501一样,我的程序将需要捕获第一个非法参数,然后将其输出回用户以向他们显示他们的错误。

我的问题是我无法从我的isBinary类中获取我的illegal_char变量进入我的parseBinary类。

public class Assignment2_gui extends javax.swing.JFrame
{
public int parseBinary(String binary) throws NumberFormatException {
    if (!isBinary(binary)) {
        throw new NumberFormatException("Invalid Format for a Binary String - Illegal character: " + illegal_char);
    }
    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 boolean isBinary(String binary) {
    int illegal_char;
    for (char ch : binary.toCharArray()) {
        if (ch != '1' && ch != '0'){
            illegal_char = ch;
            return false;
        }
    }
    return true;
}
}

我尝试过使用静态/非静态类,但这似乎并不重要。我也尝试过使用:

throw new NumberFormatException("Invalid Format for a Binary String - Illegal character: " + isBinary(illegal_char));

但我仍然无法确定。我怀疑我的isBinary是一个布尔类,所以它永远不会返回一个int?这是否意味着我需要建立一个单独的类来捕获非法的char?

1 个答案:

答案 0 :(得分:0)

你说的是对的。你的方法只返回布尔值,所以如果你想返回无效的字符,你必须创建一个完全不同的方法来返回无效的字符,或者编辑你当前的字符,以便它返回字符,或者你想要的任何字符串返回你想要的东西。