最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

一文帶你掌握J(rèn)ava中Scanner類的使用

 更新時(shí)間:2023年04月25日 09:22:49   作者:無(wú)聲編碼器  
Scanner類是java.util包中的一個(gè)類,常用于控制臺(tái)的輸入,當(dāng)需要使用控制臺(tái)輸入時(shí)即可調(diào)用這個(gè)類。本文將通過(guò)一些簡(jiǎn)單的例子為大家介紹一下Java中Scanner類的使用,需要的可以參考一下

java.util.Scanner 是 Java5 的新特征,我們可以通過(guò) Scanner 類來(lái)獲取用戶的輸入。下面是創(chuàng)建 Scanner 對(duì)象的基本語(yǔ)法:

Scanner s = new Scanner(System.in);

演示一個(gè)最簡(jiǎn)單的數(shù)據(jù)輸入,并通過(guò) Scanner 類的 next() 與 nextLine() 方法獲取輸入的字符串,在讀取前我們一般需要 使用 hasNext 與 hasNextLine 判斷是否還有輸入的數(shù)據(jù):

使用 next 方法

import java.util.Scanner; 
 
public class ScannerDemo {
    public static void main(String[] args) {
        // 從鍵盤(pán)接收數(shù)據(jù)
        Scanner scan = new Scanner(System.in);
        // next方式接收字符串
        System.out.println("next方式接收:");
        // 判斷是否還有輸入
        if (scan.hasNext()) {
            String str1 = scan.next();
            System.out.println("輸入的數(shù)據(jù)為:" + str1);
        }
        scan.close();
    }
}
// 執(zhí)行以上程序輸出結(jié)果為:
// next方式接收:
// juejin cn
// 輸入的數(shù)據(jù)為:juejin

// Process finished with exit code 0

可以看到 cn 字符串并未輸出,接下來(lái)我們看 nextLine。

使用 nextLine 方法

import java.util.Scanner;
 
public class ScannerDemo {
    public static void main(String[] args) {
        // 從鍵盤(pán)接收數(shù)據(jù)
        Scanner scan = new Scanner(System.in);
        // nextLine方式接收字符串
        System.out.println("nextLine方式接收:");
        // 判斷是否還有輸入
        if (scan.hasNextLine()) {
            String str2 = scan.nextLine();
            System.out.println("輸入的數(shù)據(jù)為:" + str2);
        }
        scan.close();
    }
}
// 執(zhí)行以上程序輸出結(jié)果為:
// nextLine方式接收:
// juejin cn
// 輸入的數(shù)據(jù)為:juejin cn

// Process finished with exit code 0

nextLine 方法可以看到 cn 字符串輸出。

next() 與 nextLine() 區(qū)別

next():

  • 1、一定要讀取到有效字符后才可以結(jié)束輸入。
  • 2、對(duì)輸入有效字符之前遇到的空白,next() 方法會(huì)自動(dòng)將其去掉。
  • 3、只有輸入有效字符后才將其后面輸入的空白作為分隔符或者結(jié)束符。
  • next() 不能得到帶有空格的字符串。

nextLine():

  • 1、以Enter為結(jié)束符,也就是說(shuō) nextLine()方法返回的是輸入回車之前的所有字符。
  • 2、可以獲得空白。

如果要輸入 int 或 float 類型的數(shù)據(jù),在 Scanner 類中也有支持,但是在輸入之前最好先使用 hasNextXxx() 方法進(jìn)行驗(yàn)證,再使用 nextXxx() 來(lái)讀?。?/p>

import java.util.Scanner;
 
public class ScannerDemo {
    public static void main(String[] args) {
        // 從鍵盤(pán)接收數(shù)據(jù)
        Scanner scan = new Scanner(System.in);
        int i = 0;
        float f = 0.0f;
        System.out.print("輸入整數(shù):");
        if (scan.hasNextInt()) {
            // 判斷輸入的是否是整數(shù)
            i = scan.nextInt();
            // 接收整數(shù)
            System.out.println("整數(shù)數(shù)據(jù):" + i);
        } else {
            // 輸入錯(cuò)誤的信息
            System.out.println("輸入的不是整數(shù)!");
        }
        System.out.print("輸入小數(shù):");
        if (scan.hasNextFloat()) {
            // 判斷輸入的是否是小數(shù)
            f = scan.nextFloat();
            // 接收小數(shù)
            System.out.println("小數(shù)數(shù)據(jù):" + f);
        } else {
            // 輸入錯(cuò)誤的信息
            System.out.println("輸入的不是小數(shù)!");
        }
        System.out.println("關(guān)閉輸入");
        scan.close();
    }
}
// 執(zhí)行以上程序輸出結(jié)果為:
// 輸入整數(shù):12
// 整數(shù)數(shù)據(jù):12
// 輸入小數(shù):1.2
// 小數(shù)數(shù)據(jù):1.2
// 關(guān)閉輸入

// Process finished with exit code 0

以下實(shí)例我們可以輸入多個(gè)數(shù)字,并求其總和與平均數(shù),每輸入一個(gè)數(shù)字用回車確認(rèn),通過(guò)輸入非數(shù)字來(lái)結(jié)束輸入并輸出執(zhí)行結(jié)果:

import java.util.Scanner;
 
class RunoobTest {
    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();
    }
}
// 執(zhí)行以上程序輸出結(jié)果為(輸入非數(shù)字來(lái)結(jié)束輸入):
// 請(qǐng)輸入數(shù)字:
// 12
// 23
// 15
// 21.4
// end
// 4個(gè)數(shù)的和為71.4
// 4個(gè)數(shù)的平均值是17.85

Scanner 不僅能從輸入流中讀取,也能從文件中讀取:

public class Test {
    public static void main(String args[]) throws IOException {
        int[] arr = new int[10];
        int i = 0;
        // 創(chuàng)建 File 對(duì)象
        File file = new File("/Users/wanggang/Desktop/JavaTest/Hello.txt");
        // 創(chuàng)建 Scanner 對(duì)象
        Scanner sc = new Scanner(file);
        // 判斷是否還有輸入
        while (sc.hasNextLine()){
            // 將輸入接收,否則會(huì)阻塞
            sc.nextLine();
            //判斷輸入的是否是整數(shù)
            while(sc.hasNextInt()) {
                // 將整數(shù)存入數(shù)組
                arr[i] = sc.nextInt();
                I++;
            }
        }
        // 關(guān)閉 Scanner
        sc.close();
        // 輸出讀取的整數(shù)個(gè)數(shù)
        System.out.printf("讀取了 %d 個(gè)數(shù)\n",i);
        // 輸出所有讀取的整數(shù)
        for(int j = 0; j < i; j++) {
            System.out.print(arr[j] + ",");
        }
    }
}
// 執(zhí)行以上程序輸出結(jié)果為:
// 讀取了 5 個(gè)數(shù)
// 1,2,3,4,5,

到此這篇關(guān)于一文帶你掌握J(rèn)ava中Scanner類的使用的文章就介紹到這了,更多相關(guān)Java Scanner類內(nèi)容請(qǐng)搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!

相關(guān)文章

  • java 圖片加水印實(shí)例代碼

    java 圖片加水印實(shí)例代碼

    java 圖片加水印實(shí)例代碼,需要的朋友可以參考一下
    2013-06-06
  • Java二叉樹(shù)的遍歷思想及核心代碼實(shí)現(xiàn)

    Java二叉樹(shù)的遍歷思想及核心代碼實(shí)現(xiàn)

    今天小編就為大家分享一篇關(guān)于Java二叉樹(shù)的遍歷思想及核心代碼實(shí)現(xiàn),小編覺(jué)得內(nèi)容挺不錯(cuò)的,現(xiàn)在分享給大家,具有很好的參考價(jià)值,需要的朋友一起跟隨小編來(lái)看看吧
    2019-01-01
  • Java中的原子類AtomicInteger使用詳解

    Java中的原子類AtomicInteger使用詳解

    這篇文章主要介紹了Java中的原子類AtomicInteger使用詳解,原子操作是指不會(huì)被線程調(diào)度機(jī)制打斷的操作,這種操作一旦開(kāi)始,就一直運(yùn)行到結(jié)束,中間不會(huì)有任何線程上下文切換,需要的朋友可以參考下
    2023-12-12
  • mybatis-sqlserver批量新增返回id方式

    mybatis-sqlserver批量新增返回id方式

    這篇文章主要介紹了mybatis-sqlserver批量新增返回id方式,具有很好的參考價(jià)值,希望對(duì)大家有所幫助,如有錯(cuò)誤或未考慮完全的地方,望不吝賜教
    2024-05-05
  • java編程經(jīng)典案例之基于斐波那契數(shù)列解決兔子問(wèn)題實(shí)例

    java編程經(jīng)典案例之基于斐波那契數(shù)列解決兔子問(wèn)題實(shí)例

    這篇文章主要介紹了java編程經(jīng)典案例之基于斐波那契數(shù)列解決兔子問(wèn)題,結(jié)合完整實(shí)例形式分析了斐波那契數(shù)列的原理及java解決兔子問(wèn)題的相關(guān)操作技巧,需要的朋友可以參考下
    2017-10-10
  • 在java代碼中獲取JVM參數(shù)的方法

    在java代碼中獲取JVM參數(shù)的方法

    下面小編就為大家?guī)?lái)一篇在java代碼中獲取JVM參數(shù)的方法。小編覺(jué)得挺不錯(cuò)的,現(xiàn)在就分享給大家,也給大家做個(gè)參考。一起跟隨小編過(guò)來(lái)看看吧
    2017-01-01
  • Spring使用AspectJ的注解式實(shí)現(xiàn)AOP面向切面編程

    Spring使用AspectJ的注解式實(shí)現(xiàn)AOP面向切面編程

    這篇文章主要介紹了Spring使用AspectJ的注解式實(shí)現(xiàn)AOP面向切面編程的操作,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教
    2021-06-06
  • 基于Spring-AOP實(shí)現(xiàn)自定義分片工具詳解

    基于Spring-AOP實(shí)現(xiàn)自定義分片工具詳解

    隨著數(shù)據(jù)量的增長(zhǎng),在與其他系統(tǒng)交互時(shí),批量接口會(huì)出現(xiàn)超時(shí)現(xiàn)象,發(fā)現(xiàn)原批量接口在實(shí)現(xiàn)時(shí),沒(méi)有做分片處理。由于與其他系統(tǒng)交互比較多,一個(gè)一個(gè)接口去做分片優(yōu)化,改動(dòng)量較大,所以考慮通過(guò)AOP解決此問(wèn)題,感興趣的可以了解一下
    2022-11-11
  • 簡(jiǎn)單快速對(duì)@RequestParam聲明的參數(shù)作校驗(yàn)操作

    簡(jiǎn)單快速對(duì)@RequestParam聲明的參數(shù)作校驗(yàn)操作

    這篇文章主要介紹了簡(jiǎn)單快速對(duì)@RequestParam聲明的參數(shù)作校驗(yàn)操作,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教
    2021-08-08
  • Spring中Bean的單例和多例使用說(shuō)明

    Spring中Bean的單例和多例使用說(shuō)明

    這篇文章主要介紹了Spring中Bean的單例和多例使用說(shuō)明,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教
    2022-06-06

最新評(píng)論

林口县| 朝阳区| 泰州市| 交口县| 浮山县| 南宁市| 体育| 天峻县| 凤台县| 涿州市| 临澧县| 渭南市| 宁武县| 定结县| 定边县| 临清市| 盐源县| 凌海市| 泸定县| 呼玛县| 峨眉山市| 高邮市| 宾川县| 海宁市| 南华县| 松滋市| 镇江市| 怀集县| 缙云县| 筠连县| 高邑县| 天台县| 清远市| 泽库县| 修武县| 杨浦区| 正阳县| 临汾市| 绥中县| 徐州市| 宿州市|