2016-08-04 9 views
-4
Scanner keyboard = new Scanner(System.in); 
System.out.println("Enter number of bars(min 1/max 6): "); 
int barNumbers = keyboard.nextInt(); 
while (barNumbers <= 0 || barNumbers >= 7) { 
    System.out.println("Enter number of bars(min 1/max 6): "); 
    barNumbers = keyboard.nextInt(); 
} 
int barHeights[] = new int[barNumbers]; 
int countForBars = 1; 
for (int i = 0; i <= barNumbers - 1; i++) { 
    System.out.println(
     "Enter height of bar " + countForBars + " of " + barNumbers + "(min 1/max 7): "); 
    barHeights[i] = keyboard.nextInt(); 
    while (barHeights[i] <= 0 || barHeights[i] >= 8) { 
    System.out.println(
     "Enter height of bar " + countForBars + " of " + barNumbers + "(min 1/max 7): "); 
    barHeights[i] = keyboard.nextInt(); 
    } 
    countForBars += 1; 
} 

こんにちは、私はJavaの初心者ですので、あなたには非常に簡単な助けが必要です。 とにかく、私は今、ロボットアームを制御してJavaを介して物事を伝えようとしています。 問題は、そこに見られるように、私は1-6の間の整数だけを得るためのいくつかの条件を設定することです。したがって、残りの入力は特に文字列に制限する必要があります。では、try catchの代わりに文字列の入力を制限する方法はありますか?役に立つ解決策があれば、私はそれを感謝します。乾杯!コード表示にごめんなさい。私は、コードのようにそれを作る方法がわからない:(Javaでキャッチしようとすると整数入力のみ受け入れることができます

+4

を、初心者のためのあなたのコード – Blobonat

+0

@Allenをフォーマット、プレビューを見て、としてください –

+3

Javaはすべての例外を使用していますが、それを避ける理由は何ですか? – xenteros

答えて

0

を使用すると、次のコードを試すことができかもしれませ:

public static boolean isInteger(String str) { //pass your "keyboard" string here. 
if (str == null) { // if there is nothing entered in the String 
    return false; 
} 
int length = str.length(); 
if (length == 0) { 
    return false; 
} 
int i = 0; 
if (str.charAt(0) == '-') { 
    if (length == 1) { 
     return false; 
    } 

} 
for (i = 1; i < length; i++) { 
    char c = str.charAt(i); 
    if (c < '0' || c > '6') { 
     return false; 
    } 
    } 
return true; 
} 
+0

@ Allen-これは役に立ちましたか? –

関連する問題