- 入力を正しく区切る: Scannerオブジェクトは、デフォルトでは空白文字(スペース、タブ、改行)で入力を区切ります。しかし、入力が異なる形式で与えられる場合、正しく区切れない可能性があります。
例えば、カンマで区切られた値を処理する場合、Scannerオブジェクトのデリミタ(区切り文字)をカンマに設定することができます。
Scanner scanner = new Scanner(System.in);
scanner.useDelimiter(",");
このように設定することで、カンマで区切られた入力を正しく処理することができます。
- nextLine()を利用する: nextLine()メソッドを使用することで、改行までの全ての入力を取得することができます。次に、取得した入力を必要な形式に変換することができます。
Scanner scanner = new Scanner(System.in);
String input = scanner.nextLine();
// 入力の変換や処理を行う
Scanner scanner = new Scanner(System.in);
int input = 0;
while (true) {
try {
input = scanner.nextInt();
break;
} catch (InputMismatchException e) {
System.out.println("正しい形式で入力してください。");
scanner.next(); // 入力をスキップする
}
}