java - 为什么我的程序总是返回不是二进制数?

标签 java

所以程序应该将二进制数转换为十进制数,首先检查它是否是二进制数,然后进行转换。无论我给出什么输入,它总是说输入不是二进制数,我不明白为什么。这是我的代码。

public class Conversion {
    public static void main (String []args){
        String binaryNumber = args[0];
        if (checkBinary(binaryNumber)){
            int decimalNumber = binaryToDecimal(binaryNumber);
            System.out.print("The binary number " + binaryNumber + "is " + decimalNumber + "in base 10." );
        }
        else {
            System.out.println("The input is not binary!");
        }
    }

    public static boolean checkBinary(String binaryNumber){
        for (int i=0; i < binaryNumber.length(); i++) {
            char x = binaryNumber.charAt(i);
            if (x != '0' && x != '1'){
                return false;
            }
        }
        return true;
    }

    public static int binaryToDecimal(String binaryNumber) {
        int z = 1;
        int y = 0;
        for (int i = binaryNumber.length()- 1; i >= 0; i--){
            if (binaryNumber.charAt(i)=='1'){
                y += z;
            }
            z *= 2;
        }
        return y;
    }
}

最佳答案

您只需将 if (x != '0' && x != '1') 编辑为 if (x != '0' || x != '1 ')

关于java - 为什么我的程序总是返回不是二进制数?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35527146/

相关文章:

java - 而 nextLine() 不等于 ""

java - 如何确定 Android Studio 布局中使用的宽度和高度以及重新创建此设计的可能方法?

java - 禁用 XMLInputFactory 中的功能安全处理

java - Netbeans 拒绝自动建议导入的已知类

Java - 将按钮单击从一个类传递到主类

java - Blackberry Java 开发 - 递增版本号

java - 具有相同值的 Int 到 Byte

java - Google Cloud Endpoint 在端点中执行异步代码

java - 无法提取从 Java 创建的 zip 文件

java - 有什么(任何方式)可以比 StringWriter 更快地连接 java 字符串吗?