Java Scanner nextLine方法跳過

問題描述

Scanner使用了nextInt方法的時候,若是接下來要使用nextLine,會獲取不到內容code

緣由

由於Scanner讀取用戶輸入數據,是先判斷緩衝區是否含有數據,沒有則接收用戶輸入的數據,把用戶輸入的數據放在緩衝區中讀取。方法

Scanner先獲取用戶的內容到緩衝區中,調用nextInt方法讀取數值,可是緩衝區的內容裏其實還含有個\n換行符,nextInt方法將數值取出以後,\n仍然存在於緩衝區.next

以後咱們再調用nextLine方法,因爲緩衝區中還存在有內容,因此Scanner這個時候直接去到了緩衝區讀取,讀取到\n,直接換行.數據

因而,Scanner的nextLine方法就跳過,沒有獲取到用戶輸入內容.co

解決方法

在使用完nextInt以後調用nextLine,將緩衝區中的\n清除掉

int i = scanner.nextInt();
    scanner.nextLine();
相關文章
相關標籤/搜索