Java method not waiting on BufferedReader input?
bufferedreader, java
Solution
This is happening because once you press enter after typing a letter, you are also sending the newline character into the stream.
When you call `read()` the first time it returns the first character as expected. However, when you call `read()` the second time it will simply read in the newline character that is buffered in the stream, thereby seeming like it skipped over a read instruction.
The solution is to tell the `BufferedReader` to read the entire line, then fetch the first character from the line:
System.out.println("Please enter a letter for your word.(a-z)");
letter = inFromUser.readLine().charAt(0);
You may also want to improve upon this by doing some validation in case the user simply presses enter without inputting a letter.
Problem
I have a `BufferedReader` waiting for input, but for some reason it doesn't wait for the second read and continues to print my third print statement. Code: ``` BufferedReader inFromUser =new BufferedReader(new InputStreamReader(System.in)); char letter,xVal; int yVal; System.out.println("Please enter a letter for your word.(a-z)"); letter=(char)inFromUser.read(); System.out.println("Please enter a X location for this piece.(A-J)"); xVal=(char)inFromUser.read(); System.out.println("Please enter a Y location for this piece.(0-9)"); yVal=inFromUser.read(); ``` Example execution goes as follows: Please enter a letter for your word. //Waits on input here a Please enter a X location for this piece. //Doesn't wait here??? Please enter a Y location for this piece.