0

プログラムを作成していますが、スキャナ入力に数字のみを認識させる方法がわかりません。これが私の言いたいことです。

System.out.print(" What is the distance in feet:" ); 
//ask the user to input variables 

Distance = keyboard.nextDouble(); 

数値を入力しなかったことをユーザーに知らせる何らかのメッセージを出力できるようにするために、距離入力の後に何を入力できますか?

私はおそらく次のようなものから始めると思いました

if (Distance != double) 
    System.out.print ("You did not enter a valid character, please enter again." 

しかし、それは機能しません。助言がありますか?

4

2 に答える 2

2

Scanner#hasNextDouble()読み取る double 値があるかどうかをテストするには、メソッドを使用する必要があります。

// While the next input is not a double value, repeat
while (!keyboard.hasNextDouble()) {
    System.out.println("Please enter a valid numeric value");
    keyboard.nextLine();  // Move Scanner past the current line
}

double distance = keyboard.nextDouble();

また、ユーザーが間違った入力を渡し続けると、ループが無限になる可能性があります。あなたは彼にそれを正しくするための最大試行回数を与えてから、例外をスローするか、メッセージを表示してからSystem.exit(1);.

于 2013-09-27T19:58:29.707 に答える
0

これは、次のような try cacth ブロックを使用して作成できます。

System.out.print(" What is the distance in feet:" ); 
//ask the user to input variables 

Distance = keyboard.nextDouble(); 

try
{
  //you next code, considering a valid number 
}catch (NumberFormatException ex)
{
  //here u show a message ou another thing
}

それが役立つことを願っています^^

于 2013-09-27T20:18:20.087 に答える