Javaのスキャナsc.nextLine通報();
-
20-09-2019 - |
質問
私の英語:)
についてSRY
Javaプログラミングに新しいイムと私は、スキャナに問題があります。私は私が使用して文字列を読んで、その後の sc.nextInt()、のIntを読んでいくつかのものを表示し、する必要があります。を示して私のものをshowMenu()の を、次に読みしてみてください文字列の palabra = sc.nextLine(); の
いくつかのいずれか)が、私は(sc.nextLineを使用する必要が私に言いました。 sc.nextInt後の();しかし、私は、あなたがそれをしなければならないなぜ理解しない:(
ここに私のコードは次のとおりです。
public static void main(String[] args) {
// TODO code application logic here
Scanner sc = new Scanner(System.in);
int respuesta = 1;
showMenu();
respuesta = sc.nextInt();
sc.nextLine(); //Why is this line necessary for second scan to work?
switch (respuesta){
case 1:
System.out.println("=== Palindromo ===");
String palabra = sc.nextLine();
if (esPalindromo(palabra) == true)
System.out.println("Es Palindromo");
else
System.out.println("No es Palindromo");
break;
}
}
のTyそんなにあなたの時間とヘルプ:D
解決
それはint型を発見し、その後、停止していますまで、
nextInt()
だけで読み込みます。
あなたは、入力ストリームがまだ行に改行文字やおそらく他の非int型のデータを持っているのでnextLine()
を行う必要があります。 nextLine()
を呼び出すと、int型を入力すると文字列を入力する間でプレスユーザーを入力含めて、残っているものは何でもデータを読み込みます。
他のヒント
するとき、あなたが入力した値(かString
、int
、double
、等...)とヒット「を入力し、」('\n'
別名)、改行文字は、あなたの入力の最後に追加されます。あなたはint型を入力しているのであれば、sc.nextInt()
しか入力された整数を読み取り、バッファに背後'\n'
を残します。だから、この問題を解決する方法は残りを読んで、それを捨てますsc.nextLine()
を追加することです。あなたがプログラムのコードの1行を持っている必要があります理由はここにあります。
所属していません StackOverflow