iT邦幫忙

0

Java – Scanner 讀取整數(int)緊貼再輸入字串(String)的注意事項

  • 分享至 

  • xImage
  •  

閱讀時間: 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)


圖片
  直播研討會
圖片
{{ item.channelVendor }} {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

尚未有邦友留言

立即登入留言