2016-11-07 36 views
-2

我被要求編寫一個接受二進制數(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."); 






} 

}

+0

歡迎StackOverflow上。請花一些時間訪問[幫助]並閱讀[問]。形式問題「這是我的代碼,請調試」被認爲是無關緊要的。 StackOverflow不是討論,教程或調試網站。這樣做的方式是,你需要嘗試解決問題,然後在遇到困難時尋求幫助,清楚地解釋你所嘗試的以及你不瞭解的內容。至少您應該已經在IDE調試器中逐步瞭解代碼,並能夠識別出與您的期望不符的結果。 –

回答

0

你已經知道如何找到所有的1組成;你應該可以做類似的事情來找到所有的0。

如果這兩個計數的總和不是字符串的長度,那麼至少必須有一個非法字符。

0

如果使用parseInt方法,你可以做

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

或在您的情況

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

按的javadoc

Throws: 
NumberFormatException - if the String does not contain a parsable int. 
相關問題