public class Pack1 {
public static void main(String ar[]) throws IOException {
BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
System.out.println("enter the character");
char c=(char)br.read();
System.out.println(c);
System.out.println("enter the integer");
long l=Integer.parseInt(br.readLine());
System.out.println("long l="+l);
System.out.println(c);
}
}
最佳答案
假设用户键入X
并在第一个问题上按Enter,然后键入123
并在第二个问题上按Enter,这意味着输入流包含以下字符:
X <CR> 1 2 3 <CR>
呼叫
read()
时,您仅读取X
。当您随后调用readLine()
时,您将读取<CR>
并返回一个空白字符串。1 2 3 <CR>
在输入流中仍处于未读状态。解决方案:读取
readLine()
后调用X
跳过该行的其余部分,或使用readLine()
将X
读取为String
,而不是char
。仅供参考:这是人们在使用
Scanner
并将对nextLine()
的调用与对其他nextXxx()
方法(如nextInt()
)的调用混合在一起时遇到的问题。