1.Scanner的實作步驟
#第一步:在有效程式碼的第一行,透過import匯入Scanner類別!
import java.util.Scanner;
第二步:透過new關鍵字實例化一個Scanner物件!
Scanner input = new Scanner(System.in);
--> 唯一可變的就是input變數名稱!
第三步:透過Scanner物件來呼叫Scanner類別中的方法,用於取得使用者在控制台輸入的內容
java相關影片教學:java學習
#取得基本資料類型的資料
input.nextByte();–> 获取用户在控制台输入的内容,返回数据类型为byte类型! input.nextShort();–> 获取用户在控制台输入的内容,返回数据类型为short类型! input.nextInt();–> 获取用户在控制台输入的内容,返回数据类型为int类型! input.nextLong(); --> 获取用户在控制台输入的内容,返回数据类型为long类型! input.nextFloat(); --> 获取用户在控制台输入的内容,返回数据类型为float类型! input.nextDouble();–> 获取用户在控制台输入的内容,返回数据类型为double类型! input.nextBoolean(); --> 获取用户在控制台输入的内容,返回数据类型为boolean类型!
--> 當使用者輸入內容並敲回車時,取得第一個空格之前的內容!
取得引用資料類型的資料
input.next(); --> 获取用户在控制台输入的内容,返回数据类型为String类型!
--> 當使用者輸入內容並敲回車時,取得第一個空格之前的內容!
input.nextLine(); --> 获取用户在控制台输入的内容,返回数据类型为String类型!
--> 當使用者輸入內容並敲回車時,取得一整行的內容!
2.Scanner使用的注意事項
a)當執行Scanner的方法時,會阻塞程式碼的執行!當使用者輸入資料並敲回車,那麼Scanner的方法會取得使用者輸入的內容並保存在等號左邊的變數中,然後結束程式碼的阻塞效果!
b)為了提高使用者體檢,在呼叫Scanner類別的方法之前先輸出提示性文字!提示使用者輸入的內容!
c)輸入的內容一定要和呼叫Scanner的方法回傳的資料保持一致!否則就會拋出異常!
d)Scanner類別中沒有提供nextChar()方法,如果需要取得使用者輸入的字符,我們可以透過自訂來實現!
Scanner常遇到的一些坑
1.先透過nextInt()取得年齡,然後再透過nextLine()取得姓名,發現取得年齡之後姓名沒有讓我們輸入程式就結束!
產生的原因:
執行nextLine()方法的時候,首先會檢查記憶體中是否包含換行符,如果包含換行符,那麼直接取得換行符之前的內容而不用戶輸入,獲取完畢之後會吃掉內存中的換行符!
解決的方案:
在取得年齡後先執行一次nextLine()方法,然後再取得姓名!
2.如何實作取得使用者在控制台輸入的字元? ? ?
因為:Scanner沒有提供nextChar()方法,所以我們需要自己完成取得字元的操作!
解決:
a)先取得使用者輸入的字串--> Scanner類別的next()或nextLine()方法
b)然後再取得字符串中的第一個字元。 --> String類別的charAt(index)方法
範例如下:
import java.util.Scanner; public class ScannerDemo02 { public static void main(String[] args) { Scanner input = new Scanner(System.in); System.out.print("请输入年龄:"); int age = input.nextInt(); System.out.println("年龄:" + age); // 获取用户输入的姓名 input.nextLine(); // 先用nextLine()方法吃掉内存中的换行符! System.out.print("请输入姓名:"); String name = input.nextLine(); System.out.println("姓名:" + name); } }
更多java相關文章請造訪:java開發入門
以上是java中關於scanner類別的詳細介紹的詳細內容。更多資訊請關注PHP中文網其他相關文章!