检查输入的字符串是否仅包含1和0

时间:2012-10-09 23:33:36

标签: java

我正在编写一个程序,将二进制数转换为十进制数,并且只是一个新手程序员。我试图确定输入的字符串是二进制数字,这意味着它只包含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语句是假的或者我的角色声明是错误的,但是我已经尝试了我个人知道的所有内容来纠正这个问题,而我在网上找到的任何内容都没有帮助。任何帮助将不胜感激。

2 个答案:

答案 0 :(得分:18)

你可以使用正则表达式:

num.matches("[01]+")

如果字符串true仅包含num0字符,则为1,否则为false

答案 1 :(得分:2)

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