首頁  >  文章  >  Java  >  java中關於scanner類別的詳細介紹

java中關於scanner類別的詳細介紹

王林
王林轉載
2019-11-26 13:13:433359瀏覽

java中關於scanner類別的詳細介紹

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中文網其他相關文章!

陳述:
本文轉載於:csdn.net。如有侵權,請聯絡admin@php.cn刪除