如何在int输入之前在java中输入char输入?
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
并按下回车键上的第一个问题,然后类型123
和压在第二个问题中输入,这将意味着输入流包含下列字符:
X <CR> 1 2 3 <CR>
当你请致电read()
,您只能阅读X
。当您拨打readLine()
时,您会看到<CR>
并返回空白字符串。
1 2 3 <CR>
仍然在输入流中未读。
解决方法:在阅读X
跳过过去的路线,或使用readLine()
其余阅读X
为String
后调用readLine()
,而不是作为一个char
。
FYI:这是完全一样的问题,人们继续使用时Scanner
和混合呼叫nextLine()
与调用其他nextXxx()
方法,如nextInt()
有。
因此,每当我必须采取字符输入我必须输入字符串,然后选择第一个字符..? –
您正在以面向行的方式提示用户,例如,键入回答,按回车,键入回答,按回车键,这样您也应该以面向行的方式读取输入,特别是如果您一次只请求一个值。 ---另外,请记住验证,例如如果用户按Enter键而不输入任何内容,那么什么?或者当你询问一个号码时输入'abc'。 – Andreas
更改此:
long l=Integer.parseInt(br.readLine());
到:
long l=Long.parseLong(br.readLine(), 10);
这是因为你正试图将串地龙,而不是一个整数类型转换。
那么你的问题究竟是什么? – Mureinik
我想先采取字符输入,然后int输入,但它显示数字格式异常 –