Java 拒绝相同数量的重复项

Java 拒绝相同数量的重复项,java,Java,以下是我应该做什么的说明 编写一个程序,输入表示二进制数的字符串。 该字符串只能包含0和1,不能包含其他字符,不能包含其他字符 偶数空间 验证输入的编号是否符合这些要求。如果有 否则,显示错误消息。如果它是一个有效的二进制数, 确定它包含的1数。如果它正好有两个1, 显示“已接受”。否则,显示“已拒绝” 所有输入和输出都应来自控制台。这里有一些样品 要测试的输入: abc 10102011 10101FF 0000 1111(注意本测试用例中的空格) 00000000 1111011100000

以下是我应该做什么的说明

编写一个程序,输入表示二进制数的字符串。 该字符串只能包含0和1,不能包含其他字符,不能包含其他字符 偶数空间

验证输入的编号是否符合这些要求。如果有 否则,显示错误消息。如果它是一个有效的二进制数, 确定它包含的1数。如果它正好有两个1, 显示“已接受”。否则,显示“已拒绝”

所有输入和输出都应来自控制台。这里有一些样品 要测试的输入:

abc 10102011 10101FF 0000 1111(注意本测试用例中的空格)
00000000 111101110000001 1000001

到目前为止,我在这里写的是:

import java.util.Scanner;
import java.util.Set;
 class ValidateBinary1
 {

 public static void main(String args[])

 {
  Scanner input = new Scanner(System.in);

  System.out.println("Enter a binary number: ");

   String binary = input.nextLine();


  boolean isCorrect = true;
  boolean notCorrect = false;



  for(int i = 0; i <= binary.length() - 1; i++)
   {

   if(binary.charAt(i) == '1')
   {
       isCorrect = true;
   }

   else if(binary.charAt(i) != '0' & binary.charAt(i) != '1')
   {
      isCorrect = false;
      System.out.println("Wrong input! Please enter a valid binary number");
   }



 }

 if(isCorrect)
   System.out.println("Accepted");
 else if(notCorrect)
   System.out.println("Rejected");

  }
 }
import java.util.Scanner;
导入java.util.Set;
类ValidateBinary1
{
公共静态void main(字符串参数[])
{
扫描仪输入=新扫描仪(System.in);
System.out.println(“输入二进制数:”);
字符串binary=input.nextLine();
布尔值isCorrect=true;
布尔notCorrect=false;
对于(int i=0;i尝试此操作(您使用的是位运算符
&
而不是逻辑运算符
&&
)但是我不认为使用&&other是正确的;您必须使用按位或
| |
。此外,您没有检查1的数量,根据您的问题描述,输入字符串中的1的数量必须正好是2

  public static void main(String args[]){

  Scanner input = new Scanner(System.in);

  System.out.println("Enter a binary number: ");

  String binary = input.nextLine();

  boolean isCorrect = true;
  short numberOfOnes = 0;

  for(int i = 0; i <= binary.length() - 1; i++)
   {

   if(binary.charAt(i) == '1')
   {
       numberOfOnes++;
   }

   else if(! (binary.charAt(i) == '0' || binary.charAt(i) == '1'))
   {
      isCorrect = false;
      System.out.println("Wrong input! Please enter a valid binary number");
      break;
   }



 }

 if(isCorrect && numberOfOnes == 2)
   System.out.println("Accepted");
 else 
   System.out.println("Rejected");

  }
publicstaticvoidmain(字符串参数[]){
扫描仪输入=新扫描仪(System.in);
System.out.println(“输入二进制数:”);
字符串binary=input.nextLine();
布尔值isCorrect=true;
短数名词=0;
对于(int i=0;i
publicstaticvoidmain(String[]args){
扫描仪输入=新扫描仪(System.in);
System.out.println(“输入二进制数:”);
字符串binary=input.nextLine();
布尔值isCorrect=true;
布尔值isCountCorrect=true;
对于(int i=0;i2){
isCountCorrect=false;
}
}
如果(isCorrect=true&&isCountCorrect==true){
系统输出打印项次(“批准”);
}否则
系统输出打印项次(“拒绝”);
}

我们开始吧。我拿了其中一个答案,用它来修改我的代码,并得出了以下结论:

import java.util.Scanner;
import java.util.Set;
 class ValidateBinary1
 {

 public static void main(String args[])

 {
  Scanner input = new Scanner(System.in);

  System.out.println("Enter a binary number: ");

   String binary = input.nextLine();


  boolean isCorrect = true;
  short numberOfOnes = 0;



  for(int i = 0; i <= binary.length() - 1; i++)
   {

   if(binary.charAt(i) == '1')
   {
       numberOfOnes++;
   }

   else if(binary.charAt(i) != '0' && binary.charAt(i) != '1')
   {
      isCorrect = false;
      System.out.println("Wrong input! Please enter a valid binary number");
   }



 }

 if(isCorrect && numberOfOnes == 2)
   System.out.println("Accepted");
 else
   System.out.println("Rejected");

  }
 }
import java.util.Scanner;
导入java.util.Set;
类ValidateBinary1
{
公共静态void main(字符串参数[])
{
扫描仪输入=新扫描仪(System.in);
System.out.println(“输入二进制数:”);
字符串binary=input.nextLine();
布尔值isCorrect=true;
短数名词=0;

对于(int i=0;i)您当前的代码有什么错误?按位运算符
&
和逻辑运算符
&
不相同。您的逻辑也不正确请检查我的答案。我需要它做的是(当我运行程序时)如果我键入的“1”多于或少于两个,请拒绝我的输入这似乎是一条正确的道路。我现在遇到的问题是,即使我只输入两个1,它也会拒绝它。此外,我必须使用&&而不是| |,因为当我使用| |时,它会告诉我输入的所有内容都是错误的格式。
import java.util.Scanner;
import java.util.Set;
 class ValidateBinary1
 {

 public static void main(String args[])

 {
  Scanner input = new Scanner(System.in);

  System.out.println("Enter a binary number: ");

   String binary = input.nextLine();


  boolean isCorrect = true;
  short numberOfOnes = 0;



  for(int i = 0; i <= binary.length() - 1; i++)
   {

   if(binary.charAt(i) == '1')
   {
       numberOfOnes++;
   }

   else if(binary.charAt(i) != '0' && binary.charAt(i) != '1')
   {
      isCorrect = false;
      System.out.println("Wrong input! Please enter a valid binary number");
   }



 }

 if(isCorrect && numberOfOnes == 2)
   System.out.println("Accepted");
 else
   System.out.println("Rejected");

  }
 }