java - 检查 8 位二进制数的 While 循环

标签 java

我正在努力成功地写出这个而不出现错误。例如,我将输入 101 和 103,但在第三个数字上,如果我输入 8 位二进制(例如 10101010),仍然会显示它不是二进制。 while 循环应检查数字是否为 1) 二进制和 2) 8 位数字。

while (number.length() != 8)
{
    for(int i = 0; i < number.length(); i++)//for loop with accumulator
    {
        if (number.charAt(i) != 48 || number.charAt(i) != 49)
        {
            binaryfail = true;
            while (binaryfail == true)
            {
                System.out.println("The number you entered is not a binary number or 8 digits");
                number = Keyboard.nextLine();//re-entry
            }
        }
    }
}

最佳答案

我不会使用循环来检查每个字符。我会使用 String.matches() 来测试输入是否只有 1 和 0:

while (!number.matches("[01]{8}")) {
    // read number again
}
<小时/>

作为事后的想法,如果您想要一个类似使用正则表达式的解决方案:

while (number.length() != 8 || !number.replace("0", "").replace("1", "").isEmpty()) {
    // read number again
}

关于java - 检查 8 位二进制数的 While 循环,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22623917/

相关文章:

java - 通过网络传输类型 double[]

java - 如何在 Glassfish 上运行 Tutorialpoint 的 Servlet Post 示例?

java - jmeter是否使SOAP请求超时

java - JSplitPane 忽略对齐

java - 在构造函数上有值,但是当我想在另一个函数上使用它时,它为零(Android)

java - 如何在不创建或附加 Azure Java SDK 的情况下获取 AppendBlobItem

java - Selenium 2.53 不适用于 Firefox 47

java - GAE 数据存储区使用 JPA 生成字符串 key

java - 关于 Jackson 转换 Java 数据类型

java - Spring - 如何向我返回的所有响应添加 header ?