2012-02-12 13 views
2

この方法では、ユーザー入力の値を確認するためにさまざまな方法を試しました。ユーザーは「1」または「0」を入力するだけでよい。他の入力が使用されている場合は、エラーメッセージが表示され、プログラムが終了します。何か案は?私は最初の数字ではなく、2番目から10番目の数字で動くようにしました。ループ内のデータ検証入力

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

この宿題ですか? –

答えて

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時間待たなければなりません。ニースワン:-)私はその時を与えてください、私はあなたの答えを愛していました。 upvoteへの私の限界は今日のために終わった:-( –

+0

ありがとう@Gagandeep :) –

+0

+1、私は私の議決権をhehe、戻ったので、最初の1つはあなたの方法来る:-) –

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); 
     } 
    } 
}