10

我正在编写一个将二进制数转换为十进制数的程序,并且只是一个新手程序员。我试图确定输入的字符串是二进制数,这意味着它只包含 1 和 0。到目前为止,我的代码是:

  String num;
  char n;

  Scanner in = new Scanner(System.in);
  System.out.println("Please enter a binary number or enter 'quit' to quit: ");
  num = in.nextLine();
  n = num.charAt(0);
  if (num.equals("quit")){
    System.out.println("You chose to exit the program.");
    return;
  }

  if (n != 1 || n != 0){
    System.out.println("You did not enter a binary number.");
  }

照原样,无论输入什么(除此之外),即使输入了二进制数,程序也会输出“您没有输入二进制数”。我确信我的 if 语句是错误的或者我的性格声明是错误的,但是我已经尝试了我个人所知道的一切来纠正这个问题,但我在网上找不到任何帮助。任何帮助,将不胜感激。

4

2 回答 2

20

您可以只使用正则表达式:

num.matches("[01]+")

这将是true如果字符串num仅包含01字符,false否则。

于 2012-10-09T23:35:55.257 回答
2

n!=1 || n!=0总是正确的,因为你不能同时拥有 n = 0 和 1。我猜你想写n!=1 && n!=0

于 2012-10-09T23:39:09.497 回答