Java Scanner类的详细介绍(Java键盘输入)
Java Scanner類的詳細(xì)介紹(Java鍵盤輸入)
- 一、Scanner類的簡單使用
- 二、Scanner類的詳細(xì)介紹
- 1.判斷輸入數(shù)據(jù)類型
- 2.next()與nextLine()的區(qū)別
- 3.求多個數(shù)字的平均數(shù)
一、Scanner類的簡單使用
Scanner類的功能,實現(xiàn)鍵盤輸入數(shù)據(jù)
創(chuàng)建Scanner對象的基本語法:
Scanner sc = new Scanner(System.in); //System.in代表從鍵盤輸入簡單使用
//由于Scanner類沒有在java.lang包下,使用之前需要導(dǎo)包 import java.util.Scanner;public class ScannerTest {public static void main(String[] args) {Scanner sc = new Scanner(System.in);System.out.println("請輸入一個int類型的數(shù)字:");int i = sc.nextInt();System.out.println("輸入的數(shù)據(jù)為:"+i);System.out.println("請輸入一個double類型的數(shù)字:");double d = sc.nextDouble();System.out.println("輸入的數(shù)據(jù)為:"+d);System.out.println("請輸入一個字符串:");String str = sc.next();System.out.println("輸入的數(shù)據(jù)為:"+str);System.out.println("請輸入一個布爾值:");boolean b = sc.nextBoolean();System.out.println("輸入的數(shù)據(jù)為:"+b);} }程序運行結(jié)果:
【tips】
因為輸入的數(shù)據(jù)已經(jīng)賦值給變量了,所以可以對變量進(jìn)行隨意使用了。
使用Scanner類計算長方體的表面積與體積
二、Scanner類的詳細(xì)介紹
1.判斷輸入數(shù)據(jù)類型
import java.util.Scanner;public class ScannerJudge {public static void main(String[] args) {Scanner sc = new Scanner(System.in);System.out.println("請輸入:");//驗證輸入的數(shù)據(jù)類型if(sc.hasNextInt()) {int i = sc.nextInt();System.out.println("輸入的數(shù)據(jù)類型為int,值為:"+i);} else if(sc.hasNextDouble()) {double d = sc.nextDouble();System.out.println("輸入的數(shù)據(jù)類型為double,值為:"+d);} else if(sc.hasNextBoolean()) {boolean b = sc.nextBoolean();System.out.println("輸入的數(shù)據(jù)類型為boolean,值為:"+b);} else if(sc.hasNext()) {String str = sc.next();System.out.println("輸入的數(shù)據(jù)類型為String,值為:"+str);}else {System.out.println("其他數(shù)據(jù)類型!");}sc.close();} }2.next()與nextLine()的區(qū)別
next():
1、一定要讀取到有效字符后才可以結(jié)束輸入。
2、對輸入有效字符之前遇到的空白,next() 方法會自動將其去掉。
3、只有輸入有效字符后才將其后面輸入的空白作為分隔符或者結(jié)束符。
4、next()只能得到空格前的字符串,空格后的無法獲取。
nextLine():
1、以Enter為結(jié)束符,也就是說 nextLine()方法返回的是輸入回車之前的所有字符。
2、可以獲得空白。
對比兩個方法的運行結(jié)果
import java.util.Scanner;public class ScannerNextAndNextLine {public static void main(String[] args) {next();System.out.println("==============");nextLine();}//next方式接收數(shù)據(jù)public static void next(){Scanner sc = new Scanner(System.in);System.out.println("輸入數(shù)據(jù):(next方式接收)");if (sc.hasNext()){String str = sc.next();System.out.println("輸入的數(shù)據(jù)類型為String,值為:"+str);}}//nextLine方式接收數(shù)據(jù)public static void nextLine(){Scanner sc = new Scanner(System.in);System.out.println("輸入數(shù)據(jù):(nextLine方式接收)");if (sc.hasNextLine()){String str = sc.nextLine();System.out.println("輸入的數(shù)據(jù)類型為String,值為:"+str);}} }執(zhí)行結(jié)果為:
對于兩個方法同樣都是都輸入Hello Scanner!
next()只接收到了Hello,Scanner!被自動刪掉
而nextLine()將Hello Scanner!全部接收
3.求多個數(shù)字的平均數(shù)
案例分析:
輸入多個數(shù)字,并求其總和與平均數(shù)
每輸入一個數(shù)字用回車確認(rèn)
通過輸入非數(shù)字來結(jié)束輸入并輸出執(zhí)行結(jié)果
代碼實現(xiàn):
import java.util.Scanner;public class ScannerSum {public static void main(String[] args) {Scanner sc = new Scanner(System.in);double sum = 0;int m = 0;System.out.print("請開始輸入數(shù)據(jù):"+'\n'+"+");while (sc.hasNextDouble()) {double x = sc.nextDouble();m = m + 1;sum = sum + x;System.out.print("+");}System.out.println(m + "個數(shù)的和為" + sum);System.out.println(m + "個數(shù)的平均值是" + (sum / m));sc.close();}}總結(jié)
以上是生活随笔為你收集整理的Java Scanner类的详细介绍(Java键盘输入)的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: [python][mediapipe]摄
- 下一篇: 社交新零售崛起将是未来的最大风口