gpt4 book ai didi

java - 如何显示无效用户输入的错误消息?

转载 作者:行者123 更新时间:2023-12-02 03:14:45 27 4
gpt4 key购买 nike

我的程序的目的是接收一个二进制数(1和0)作为输入,验证它是否是二进制数,如果不是二进制数则拒绝输入,并继续提示用户直到他们输入二进制数,然后输出该二进制数中有多少个 1 和 0。

这是我遇到的问题:虽然我的程序确实输出了数字中有多少个 1 和 0,但即使我输入了正确的二进制数,我的输出仍然显示“错误:不是二进制数”。例如,如果我的输入是 10001,则输出将是这样的-

请输入一个二进制数。10001二进制数中有2个。二进制数中有3个零。错误:不是二进制数。请输入一个二进制数。

我的代码做错了什么?

import java.util.Scanner;

public class NewClass
{
public static void main( String [] args )
{
Scanner scan = new Scanner( System.in);

int i = 0, count1 = 0, count0 = 0;
String number;

System.out.println("Please enter a binary number.");
number = scan.next();

String number1 = "1";

while ((i = number.indexOf(number1, i++)) != -1) {
count1++;
i += number1.length();
}

System.out.println("There are "+ count1 + " ones in the binary number.");


String number2 = "0";

while ((i = number.indexOf(number2, i++)) != -1) {
count0++;
i += number2.length();
}
System.out.println("There are "+ count0 + " zeros in the binary number.");


int total = (count1 + count0);
int length = number.length();

if (length != total);
{
System.out.println("ERROR: Not a binary number.");
System.out.println("Please enter a binary number.");
number = scan.next();


}


}

}

最佳答案

如果您注意到在原始代码中存在 if (length !=total)**;**{ ; 破坏了您的 if 语句,因此它始终会被触发。

    int total = (count1 + count0);
int length = number.length();

if (length != total)
{
System.out.println("ERROR: Not a binary number.");
System.out.println("Please enter a binary number.");
number = scan.next();
}

我的建议是使用 boolean 函数来检查它是否是二进制的,如下所示。

public static boolean isBinary(int number) {
int copyOfInput = number;

while (copyOfInput != 0) {
if (copyOfInput % 10 > 1) {
return false;
}
copyOfInput = copyOfInput / 10;
}
return true;
}

关于java - 如何显示无效用户输入的错误消息?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40477542/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com