簡體   English   中英

如何在java中輸入int之前獲取char輸入?

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM