Java Scanner 類的使用小結(jié)
在筆試編程過程中,關(guān)于數(shù)據(jù)的讀取如果迷迷糊糊,那后來的編程即使想法很對(duì),實(shí)現(xiàn)很好,也是徒勞,于是在這里認(rèn)真總結(jié)了Java Scanner 類的使用
通過 Scanner 類來獲取用戶的輸入,下面是創(chuàng)建 Scanner 對(duì)象的基本語法:
Scanner s = new Scanner(System.in); // 從鍵盤接收數(shù)據(jù)
接下來我們演示一個(gè)最簡(jiǎn)單的數(shù)據(jù)輸入,并通過 Scanner 類的 next() 與 nextLine() 方法獲取輸入的字符串,在讀取前我們一般需要 使用 hasNext 與 hasNextLine 判斷是否還有輸入的數(shù)據(jù):
next() 與 nextLine() 區(qū)別
next()的使用方法演示:
import java.util.Scanner;
public class scannertest {
public static void main(String[] args) {
Scanner s = new Scanner(System.in); // 從鍵盤接收數(shù)據(jù)
// next方式接收字符串
System.out.println("next方式接收:");
// 判斷是否還有輸入
if (s.hasNext()) {
String str1 = s.next();
System.out.println("輸入的數(shù)據(jù)為:" + str1);
}
s.close();
}
}
next方式接收:
hello world
輸入的數(shù)據(jù)為:hello
由結(jié)果可知:
1、一定要讀取到有效字符后才可以結(jié)束輸入。
2、對(duì)輸入有效字符之前遇到的空白,next() 方法會(huì)自動(dòng)將其去掉。
3、只有輸入有效字符后才將其后面輸入的空白作為分隔符或者結(jié)束符。
next() 不能得到帶有空格的字符串。
nextLine()的使用方法演示:
import java.util.Scanner;
public class scannertest2 {
public static void main(String[] args) {
Scanner s = new Scanner(System.in); // 從鍵盤接收數(shù)據(jù)
// next方式接收字符串
System.out.println("nextLine方式接收:");
// 判斷是否還有輸入
if (s.hasNextLine()) {
String str2 = s.nextLine();
System.out.println("輸入的數(shù)據(jù)為:" + str2);
}
s.close();
}
}
nextLine方式接收:
hello world 2018
輸入的數(shù)據(jù)為:hello world 2018
由上面可以看出,nextLine()方法具有以下特點(diǎn):
1、以Enter為結(jié)束符,也就是說 nextLine()方法返回的是輸入回車之前的所有字符;
2、可以獲得空白,都會(huì)讀入,空格等均會(huì)被識(shí)別;
注意:如果要輸入 int 或 float 類型的數(shù)據(jù),在 Scanner 類中也有支持,但是在輸入之前最好先使用 hasNextXxx() 方法進(jìn)行驗(yàn)證,再使用 nextXxx() 來讀取,下面實(shí)現(xiàn)的功能是可以輸入多個(gè)數(shù)字,并求其總和與平均數(shù),每輸入一個(gè)數(shù)字用回車確認(rèn),通過輸入非數(shù)字來結(jié)束輸入并輸出執(zhí)行結(jié)果
import java.util.Scanner;
public class scandemo {
public static void main(String[] args) {
System.out.println("請(qǐng)輸入數(shù)字:");
Scanner scan = new Scanner(System.in);
double sum = 0;
int m = 0;
while (scan.hasNextDouble()) {
double x = scan.nextDouble();
m = m + 1;
sum = sum + x;
}
System.out.println(m + "個(gè)數(shù)的和為" + sum);
System.out.println(m + "個(gè)數(shù)的平均值是" + (sum / m));
scan.close();
}
}
請(qǐng)輸入數(shù)字:
20.0
30.0
40.0
end
3個(gè)數(shù)的和為90.0
3個(gè)數(shù)的平均值是30.0
總結(jié)
以上所述是小編給大家介紹的Java Scanner 類的使用小結(jié),希望對(duì)大家有所幫助,如果大家有任何疑問請(qǐng)給我留言,小編會(huì)及時(shí)回復(fù)大家的。在此也非常感謝大家對(duì)腳本之家網(wǎng)站的支持!
相關(guān)文章
解決@ServerEndpoint不能注入@Autowired的問題
這篇文章主要介紹了解決@ServerEndpoint不能注入@Autowired的問題,具有很好的參考價(jià)值,希望對(duì)大家有所幫助,如有錯(cuò)誤或未考慮完全的地方,望不吝賜教2024-05-05
Spring Boot2.0實(shí)現(xiàn)靜態(tài)資源版本控制詳解
這篇文章主要給大家介紹了關(guān)于Spring Boot2.0實(shí)現(xiàn)靜態(tài)資源版本控制的相關(guān)資料,文中通過示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧2018-11-11
java ThreadLocal線程局部變量常用方法使用場(chǎng)景示例詳解
這篇文章主要介紹了為大家java ThreadLocal線程局部變量常用方法使用場(chǎng)景示例詳解,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪2023-07-07
Apache Commons fileUpload文件上傳多個(gè)示例分享
這篇文章主要為大家分享了Apache Commons fileUpload文件上傳4個(gè)示例,具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下2016-10-10
Java Map遍歷2種實(shí)現(xiàn)方法代碼實(shí)例
這篇文章主要介紹了Java Map遍歷2種實(shí)現(xiàn)方法代碼實(shí)例,文中通過示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友可以參考下2020-10-10
為什么程序中突然多了 200 個(gè) Dubbo-thread 線程的說明
這篇文章主要介紹了為什么程序中突然多了 200 個(gè) Dubbo-thread 線程的說明,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過來看看吧2020-09-09
如何巧用HashMap一行代碼統(tǒng)計(jì)單詞出現(xiàn)次數(shù)詳解
這篇文章主要給大家介紹了關(guān)于如何巧用HashMap一行代碼統(tǒng)計(jì)單詞出現(xiàn)次數(shù)的相關(guān)資料,文中通過示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面來一起學(xué)習(xí)學(xué)習(xí)吧2020-07-07
JavaEE的進(jìn)程,線程和創(chuàng)建線程的5種方式詳解
這篇文章主要為大家詳細(xì)介紹了JavaEE的進(jìn)程,線程和創(chuàng)建線程的5種方式,文中示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下,希望能夠給你帶來幫助2022-03-03
Java安全框架——Shiro的使用詳解(附springboot整合Shiro的demo)
這篇文章主要介紹了Java安全框架——Shiro的使用詳解,幫助大家更好的理解和學(xué)習(xí)使用Shiro,感興趣的朋友可以了解下2021-04-04

