[英]how to take char input before int input in java?
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>
仍然未讀入輸入流。
解決方案:在讀取X
之后調用readLine()
以跳過該行的其余部分, 或使用readLine()
將X
讀取為String
,而不是作為char
。
僅供參考:這是人們在使用Scanner
和混合調用nextLine()
時調用其他nextXxx()
方法(如nextInt()
時遇到的完全相同的問題。
改變這個:
long l=Integer.parseInt(br.readLine());
至 :
long l=Long.parseLong(br.readLine(), 10);
這是因為您嘗試將String轉換為Long而不是Integer類型。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.