ユーザー入力に関してコードをより厳密にする方法があるかどうか疑問に思っていますか?
例外/Try-Catch ブロックを試していますが、ユーザー入力を受け入れて、それが正しい日付タイプであることを検証する必要があります。
ユーザー入力を厳密な double にする方法はありますか? つまり、ユーザーが小数点なしで値を入力できるようにしたくありません。たとえば、5 のような int であり、検証されて double に変換され、5.0 が返されます。厳密に double 値を入力するように求められます。 、小数点が入力された値の一部であることを確認してください。
ラッパーまたはこのようなものを使用するのが適切でしょうか?もしそうなら、どうすればこれを行うことができますか?
現在のコード:
import java.util.Scanner;
public class InputExceptions {
//Do we have to do any Wrapping / instanceOf Double ?
//Can we accept an integer (no decimal point) for double entry ?
private static int inputInt;
private static double inputDouble;
public static int inputInt() {
Scanner kybd = new Scanner(System.in);
boolean inputOK = false;
while (inputOK == false) {
System.out.println("*** Please Enter an Integer Value: ");
try {
inputInt = kybd.nextInt();
kybd.nextLine();
inputOK = true;
} catch (Exception e) {
System.out.println("*** ERROR: VALUE ENTERED NOT INTEGER ***");
kybd.next();
}
}
return inputInt;
}
public static double inputDouble() {
Scanner kybd = new Scanner(System.in);
boolean inputOK = false;
while (inputOK == false) {
System.out.println("*** Please Enter a Double Value: ");
try {
inputDouble = kybd.nextDouble();
kybd.nextLine();
inputOK = true;
} catch (Exception e) {
System.out.println("*** ERROR: VALUE ENTERED NOT DOUBLE ***");
kybd.next();
}
}
return inputDouble;
}
public static void main(String[] args) {
System.out.println("*** INTEGER Input: " + inputInt() + " ***");
System.out.println("*** DOUBLE Input: " + inputDouble() + " ***");
}
}