Java Scanner 類的使用小結(jié)
在筆試編程過程中,關于數(shù)據(jù)的讀取如果迷迷糊糊,那后來的編程即使想法很對,實現(xiàn)很好,也是徒勞,于是在這里認真總結(jié)了Java Scanner 類的使用
通過 Scanner 類來獲取用戶的輸入,下面是創(chuàng)建 Scanner 對象的基本語法:
Scanner s = new Scanner(System.in); // 從鍵盤接收數(shù)據(jù)
接下來我們演示一個最簡單的數(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、對輸入有效字符之前遇到的空白,next() 方法會自動將其去掉。
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()方法具有以下特點:
1、以Enter為結(jié)束符,也就是說 nextLine()方法返回的是輸入回車之前的所有字符;
2、可以獲得空白,都會讀入,空格等均會被識別;
注意:如果要輸入 int 或 float 類型的數(shù)據(jù),在 Scanner 類中也有支持,但是在輸入之前最好先使用 hasNextXxx() 方法進行驗證,再使用 nextXxx() 來讀取,下面實現(xiàn)的功能是可以輸入多個數(shù)字,并求其總和與平均數(shù),每輸入一個數(shù)字用回車確認,通過輸入非數(shù)字來結(jié)束輸入并輸出執(zhí)行結(jié)果
import java.util.Scanner; public class scandemo { public static void main(String[] args) { System.out.println("請輸入數(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 + "個數(shù)的和為" + sum); System.out.println(m + "個數(shù)的平均值是" + (sum / m)); scan.close(); } }
請輸入數(shù)字:
20.0
30.0
40.0
end
3個數(shù)的和為90.0
3個數(shù)的平均值是30.0
總結(jié)
以上所述是小編給大家介紹的Java Scanner 類的使用小結(jié),希望對大家有所幫助,如果大家有任何疑問請給我留言,小編會及時回復大家的。在此也非常感謝大家對腳本之家網(wǎng)站的支持!
相關文章
mybatis中association和collection的使用與區(qū)別
在 MyBatis 中,<association>?和?<collection>?是用于配置結(jié)果映射中關聯(lián)關系的兩個元素,本文主要介紹了mybatis中<association>和<collection>的使用與區(qū)別,具有一定的參考價值,感興趣的可以了解一下2024-01-01springboot整合swagger3報Unable to infer base&nbs
這篇文章主要介紹了springboot整合swagger3報Unable to infer base url錯誤問題,具有很好的參考價值,希望對大家有所幫助,如有錯誤或未考慮完全的地方,望不吝賜教2024-05-05詳解SpringMVC中的四種跳轉(zhuǎn)方式、視圖解析器問題
這篇文章主要介紹了SpringMVC的四種跳轉(zhuǎn)方式、視圖解析器,springmvc核心配置文件和視圖解析器的使用,添加視圖解析器,通過案例講解四種跳轉(zhuǎn)方式,需要的朋友可以參考下2022-10-10Spring security如何重寫Filter實現(xiàn)json登錄
這篇文章主要介紹了Spring security 如何重寫Filter實現(xiàn)json登錄,具有很好的參考價值,希望對大家有所幫助。如有錯誤或未考慮完全的地方,望不吝賜教2021-09-09Java數(shù)據(jù)結(jié)構(gòu)與算法之稀疏數(shù)組與隊列深入理解
這篇文章主要介紹了Java數(shù)據(jù)結(jié)構(gòu)與算法之稀疏數(shù)組與隊列深入理解,本文給大家介紹的非常詳細,對大家的學習或工作具有一定的參考借鑒價值,需要的朋友可以參考下2021-09-09springboot多數(shù)據(jù)源配合docker部署mysql主從實現(xiàn)讀寫分離效果
這篇文章主要介紹了springboot多數(shù)據(jù)源配合docker部署mysql主從實現(xiàn)讀寫分離,通過使用docker獲取mysql鏡像,具體內(nèi)容詳情跟隨小編一起看看吧2021-09-09Spring Cloud Alibaba Nacos 入門詳解
這篇文章主要介紹了Spring Cloud Alibaba Nacos入門詳解,小編覺得挺不錯的,現(xiàn)在分享給大家,也給大家做個參考。一起跟隨小編過來看看吧2019-03-03