Java 스캐너 Sc.nextline ()의 문제;
-
20-09-2019 - |
문제
내 영어에 대해 sry :)
Java 프로그래밍을 처음 접했고 스캐너에 문제가 있습니다. int를 읽고, 물건을 보여준 다음, 문자열을 읽을 수 있도록 문자열을 읽어야합니다. sc.nextint (); 내 물건을 보여주세요 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
해결책
nextInt()
int가 발견 될 때까지만 읽습니다.
너가해야되는 nextLine()
입력 스트림에는 여전히 Newline 문자와 라인의 다른 비 INT 데이터가 있기 때문입니다. 부름 nextLine()
int를 입력하고 문자열을 입력하는 사이에 누르는 사용자 입력을 포함하여 남은 데이터를 읽습니다.
다른 팁
값을 입력 할 때 (여부 String
, int
, double
, 등 ...) 및 'Enter', 새 라인 캐릭터 (일명 '\n'
)는 입력 끝에 추가됩니다. 따라서 int에 들어가면 sc.nextInt()
입력 된 정수 만 읽고 떠날 것입니다 '\n'
버퍼 뒤에. 그래서 이것을 고치는 방법은 sc.nextLine()
그것은 남은 음식을 읽고 버릴 것입니다. 그렇기 때문에 프로그램에 한 줄의 코드가 있어야합니다.
제휴하지 않습니다 StackOverflow