Java – Scanner 讀取整數(int)緊貼再輸入字串(String)的注意事項
閱讀時間: 10分鐘
每當需要讀取使用者輸入或檔案內容中東西的時候,我們都會運用以下方式:
Scanner in = new Scanner(System.in);
不過要記得在使用前要import一個:
import java.util.Scanner
而我們都會用
nextInt()
讀取使用者輸入或檔案內容中的整數
nextLine()
讀取使用者輸入或檔案內容中的字串,包含空白鍵 tab等等。最後enter表示輸入完成
但如果我們先讀取字串再讀取整數,是不是用下面方式就可以?
String name=in.nextLine(); int number=in.nextInt();
答案: 是可以
但如果我們先讀取整數再讀取字串,是不是用下面方式就可以?
int number=in.nextInt(); String name=in.nextLine();
答案: 是不可以
為什麼是不可以?
假設我們要讀取
2020
HappyNewYear
因為當完成了in.nextInt(); 其實依然停留在第一行(2020的一行)
所以當你再執行
String name=in.nextLine();
它只會在同一行讀取字串
換角度看,in.nextInt();只是讀取整數,完成後不會自動跳到下一行。
但如果我們要讀取
2020
2021
修改一下程式
int number=in.nextInt(); int number2=in.nextInt();
當完成了in.nextInt(); 其實依然停留在第一行(2020的一行)
所以當你再執行in.nextInt();時就會跳到下一行。
因為第一行的所有整數已經被讀取。
所以就會去下一行讀取整數
解決讀取整數(int)緊貼再輸入字串(String)的方法:
假設我們要讀取
2020
HappyNewYear
修改一下程式
int number=in.nextInt(); in.nextLine(); String name=in.nextLine();
第一行讀取整數(int) (第一行2020)
第二行讀取一條空白Line (第一行2020的Line)
第三行讀取字串(String) (第二行HappyNewYear)