有 Java 编程相关的问题?

你可以在下面搜索框中键入要查询的问题!

java如何澄清用户的输入是否是二进制数?

我被要求制作一个接受二进制数(1和0)的代码,然后计算该二进制数中有多少个。我的代码实现了这个目的

练习的第二部分是这样的:如果用户输入的数字不是二进制的,我必须输出有错误,并不断提示用户,直到他们给出一个二进制数字

有人能告诉我如何合并这个吗?我试了好几次,但都没法让它点击。谢谢这是我的密码

import java.util.Scanner;

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

 int i = 0, count = 0;
 String number;

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

 String number1 = "1";


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






 }

}


共 (2) 个答案

  1. # 1 楼答案

    如果使用parseInt方法,则可以

    Integer.parseInt("1100110", 2) returns 102 
    

    还是你的情况

    int intVal = Integer.parseInt(number, 2);
    

    根据javadocs

    Throws:
    NumberFormatException - if the String does not contain a parsable int.
    
  2. # 2 楼答案

    你已经知道如何找到所有的1;您应该能够执行类似的操作来查找所有0

    如果这两个计数之和不是字符串的长度,那么其中必须至少有一个非法字符