2012-02-12 80 views
2

我嘗試過使用各種技術來檢查用戶輸入的值。用戶只能輸入'1'或'0'。如果使用任何其他輸入,則應該有錯誤消息並退出程序。有任何想法嗎?我得到它的第一位數字,但不是從第十位到第二位。循環中的數據驗證輸入

System.out.println("Enter a ten digit binary number. Press 'Enter' after each digit. Only use one or zero. :"); 

     binary[0] = keyboard.nextInt(); 

     for (index = 1; index < 10; index++) 
      binary[index] = keyboard.nextInt();// fill array with 10 binary 
               // digits from user. User 
               // must press 'Enter' after 
               // each digit. 
+3

這是功課? – 2012-02-12 17:52:55

回答

2

試試這個:

Scanner scanner = new Scanner(System.in); 
    if (scanner.hasNext()) 
    { 
     final String input = scanner.next(); 
     try 
     { 
      int num = Integer.parseInt(input, 2); 
     } 
     catch (NumberFormatException error) 
     { 
      System.out.println(input + " is not a binary number."); 
      //OR You may exit here, if you don't want to continue 
     } 
    } 
+0

請等待5個小時以上(+1)的提升,這是我今天用你的答案瞭解到的。好的一個:-)請給我那個時間,我愛你的答案。我的限制爲upvote今天沒有了:-( – 2012-02-12 18:23:32

+0

謝謝@Gagandeep :) – 2012-02-12 18:33:55

+0

+1,我得到了我的投票權,嘿,所以第一個是你的方式來了:-) – 2012-02-13 04:34:38

1

試試這個代碼的一部分:

import java.util.Scanner; 

public class InputTest 
{ 
    public static void main(String... args) throws Exception 
    { 
     Scanner scan = new Scanner(System.in); 

     int[] binary = new int[10]; 
     for (int index = 0; index < 10; index++) 
     { 
      int number = scan.nextInt(); 
      if (number == 0 || number == 1) 
      { 
       binary[index] = number; 
       System.out.println("Index : " + index); 
      } 
      else 
       System.exit(0); 
     } 
    } 
}