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

java的四種常用輸入方法你會(huì)幾種

 更新時(shí)間:2025年03月19日 09:31:24   作者:Princess$  
這篇文章主要介紹了java四種常用輸入方法的相關(guān)資料,分別是Scanner、System、命令行和JOptionPane,每種方法都有其特點(diǎn)和適用場景,文中提供了詳細(xì)的代碼示例,需要的朋友可以參考下

java的輸入方法最常見的就是Scanner的方法,我經(jīng)過查閱一些資料發(fā)現(xiàn)了輸入方法原來還有那么多種,可以玩出不少花樣,下面是我總結(jié)出的四種輸入方式,有需要的可以拿去

1.Scanner相關(guān)的功能

Scanner的輸入方法是最常見的一種,也是小編在此最推薦的一種,固定格式如下:

import java.util.Scanner;
public class TestDemo1007_4 {
    public static void main(String[] args) {
        Scanner scanner = new Scanner(System.in);
        int a = scanner.nextInt();
        System.out.println(a);
    }
}

而這里的“int a = scanner.nextInt();"表示從鍵盤輸入的是一個(gè)整數(shù),但如果想輸入字符串就需要下面這樣寫:

 Scanner scanner = new Scanner(System.in);
 String a = scanner.next();
 System.out.println(a);

這個(gè)時(shí)候我們想要輸入字符串,就可以順利讀出了,這是運(yùn)行結(jié)果:

但是,如果我們想一次性讀取多個(gè)字符串,就像這樣輸入,我們發(fā)現(xiàn)了問題:

輸入多個(gè)字符串之后,只輸出了第一個(gè)空格之前的字符,一旦遇到了空格就停止讀取了,那么如果在這種情景下,scanner.next()就行不通了,需要用:

 Scanner scanner = new Scanner(System.in);
 String a = scanner.nextLine();
 System.out.println(a);

這樣問題就解決了,可以順利輸出全部字符。

2.System相關(guān)的功能

個(gè)人認(rèn)為這種輸入方法與上面的方法比起來可能是少了一些存在的必要性,但是存在就一定有合理之處,下面是幾種使用方法:

  • 解釋一
 public static void main(String[] args) throws IOException {
        char c;
        System.out.print("Please input a char:");
        c = (char) System.in.read();
        //從標(biāo)準(zhǔn)輸入讀入u一個(gè)字節(jié)的信息,并返回一盒字符型變量
        System.out.println("Receive char =" + c);
    }

(值得注意的是:當(dāng)使用System下的read方法來進(jìn)行輸入時(shí),需要處理一個(gè)異常,否則會(huì)飄紅。)
以上代碼可以從鍵盤中讀取一個(gè)字符,但是只能讀取第一個(gè),不管輸入多少,只能讀取第一個(gè),輸出結(jié)果如下圖:

2.解釋二

使用這種方法進(jìn)行輸入時(shí),會(huì)因?yàn)槟愕逆I盤輸入習(xí)慣等問題對(duì)結(jié)果造成影響,而且,返回值始終為ASCⅡ碼(有點(diǎn)頭疼?。?/p>

 public static void main(String[] args) throws IOException {
        System.out.println("請輸入:");
        int i =0;
        while (true){
                i = System.in.read();
                System.out.println(i);
            }
        }

以上代碼的運(yùn)行情況如下:

所以就像輸出結(jié)果說的,我們的空格?;剀嚨炔僮饕矔?huì)被翻譯成ASCⅡ碼打印出來。

  • 下面是計(jì)算輸入了多少個(gè)字符的代碼;
public static void main(String[] args) throws IOException {
        byte[] b = new byte[5];
        while (true){
        int len = System.in.read(b);
        System.out.println("讀取字節(jié)數(shù):" + len);
        for (int i = 0; i < len ; i++) {
            System.out.print(b[i] + "\t");
            //返回的是字節(jié)數(shù),由于read的特性,如果輸入12加(空格)加(回車)那就是四個(gè)字符,
           }
        }
    }

輸出結(jié)果為:

3.使用命令行相關(guān)設(shè)置

說白了就是使用以下語句:

DataInputStream din = new DataInputStream(System.in);

和Scanner的用法差不多,下面是它的具體用法,代碼如下:

public static void main4(String[] args){
        double x = 0, y = 0;
        DataInputStream din = new DataInputStream(System.in);
        try {
            System.out.println("輸入x的數(shù)值:");
            x = Double.parseDouble(din.readLine());
            System.out.println("輸入y的數(shù)值:");
            y = Double.parseDouble(din.readLine());
            System.out.println("x的數(shù)值:" + x + "; y的數(shù)值:" + y);
            System.out.println("x + y = "+ (x+y));
        }catch (Exception e){
            System.out.println("錯(cuò)誤?。?);
        }
    }

輸出結(jié)果如下:

4.JOptionPane相關(guān)功能

這一種輸入方法和之前三種輸入輸出的形式都有所不同,他是會(huì)在執(zhí)行操作的時(shí)候,彈出一個(gè)彈框,所有的輸入輸出都需要從彈框中輸入顯示。

1.顯示輸入消息框,可以輸入數(shù)據(jù)

String str1 = JOptionPane.showInputDialog(“輸入消息框”,“0”);

2.顯示出一個(gè)彈框

null表示對(duì)話框顯示在屏幕中間

第二個(gè)參數(shù)表示要顯示的字符結(jié)果

JOptionPane.showMessageDialog(null,str1);
JOptionPane.showMessageDialog(null,“a + b =” + c);

一個(gè)很簡單的代碼,用來做加減乘除運(yùn)算:

    public static void main(String[] args) {
        double a,b;
        String str1 = JOptionPane.showInputDialog("輸入a的值","0");
         //由于這個(gè)方法輸入的格式為字符型,所以我們要轉(zhuǎn)換成整型
        a = Integer.parseInt(str1);
        String str2 = JOptionPane.showInputDialog("輸入運(yùn)算符號(hào)","+");
        String str3 = JOptionPane.showInputDialog("輸入b的值","0");
        b = Integer.parseInt(str3);
        double c = 0;
        if (str2.equals("+") ){
            c = a + b;
        }
        if (str2.equals("-")){
            //或者是str.contains("-")
            c = a - b;
        }
        if (str2.equals("*") ){
            c = a * b;
        }
        if (str2.equals("/") ){
            c = a / b;
        }
        JOptionPane.showMessageDialog(null, c);
    }

輸出如下:

這種輸入和輸出格式很新穎,很快引起了小編的注意,但這種方法也存在他自己的局限性

綜上:最建議使用的方法還是Scanner

5.應(yīng)用

那么我將利用四種輸入方法編寫一個(gè)很簡單的程序:

實(shí)現(xiàn)三個(gè)數(shù)排序、最大值、最小值、平均值的計(jì)算

(由于只有主函數(shù)部分有差異,所以下面是四種主函數(shù)的寫法,其余的函數(shù)在后面有附上)

  • 方法一:Scanner
public static void main(String[] args) throws IOException {
        Scanner scanner = new Scanner(System.in);
        System.out.println("請輸入三個(gè)數(shù):");
        int a = scanner.nextInt();
        int b = scanner.nextInt();
        int c = scanner.nextInt();
        int[] order = OrderNum(a,b,c);
        int max = MaxNum(a,b,c);
        int min = MinNum(a,b,c);
        double ave = AveNum(a,b,c);
        System.out.println("最大值為:" + max);
        System.out.println("最小值為:" + min);
        System.out.println("平均值為:" + ave);
        System.out.println("由大到小的順序?yàn)椋? + Arrays.toString(order));
    }
  • 方法二:System
 public static void main(String[] args) throws IOException {
        System.out.println("請輸入三個(gè)數(shù):");
        int a = System.in.read();
        int b = System.in.read();
        int c = System.in.read();
        int[] order = OrderNum(a,b,c);
        int max = MaxNum(a,b,c);
        int min = MinNum(a,b,c);
        double ave = AveNum(a,b,c);
        System.out.println("最大值為:" + (max-48));
        System.out.println("最小值為:" + (min-48));
        System.out.println("平均值為:" + (ave-48));
        System.out.println("由大到小的順序?yàn)椋? + Arrays.toString(order));
    }
  • 方法三:命令行
 public static void main(String[] args) throws IOException {
        DataInputStream din = new DataInputStream(System.in);
        System.out.println("請輸入三個(gè)數(shù):");
        int a = Integer.parseInt(din.readLine());
        int b = Integer.parseInt(din.readLine());
        int c = Integer.parseInt(din.readLine());
        int[] order = OrderNum(a,b,c);
        int max = MaxNum(a,b,c);
        int min = MinNum(a,b,c);
        double ave = AveNum(a,b,c);
        System.out.println("最大值為:" + max);
        System.out.println("最小值為:" + min);
        System.out.println("平均值為:" + ave);
        System.out.println("由大到小的順序?yàn)椋? + Arrays.toString(order));
    }
  • 方法四:JOptionPane
 public static void main(String[] args) {
        System.out.println("請?jiān)趯?duì)話框中輸入三個(gè)數(shù):");
        String str1 = JOptionPane.showInputDialog("輸入第一個(gè)數(shù)的值","0");
        int a = Integer.parseInt(str1);
        String str2 = JOptionPane.showInputDialog("輸入第二個(gè)數(shù)的值","0");
        int b = Integer.parseInt(str2);
        String str3 = JOptionPane.showInputDialog("輸入第三個(gè)數(shù)的值","0");
        int c = Integer.parseInt(str3);

        int[] order = OrderNum(a,b,c);
        int max = MaxNum(a,b,c);
        int min = MinNum(a,b,c);
        double ave = AveNum(a,b,c);
        JOptionPane.showMessageDialog(null, "三個(gè)數(shù)的最大值為:" + max);
        JOptionPane.showMessageDialog(null, "三個(gè)數(shù)的最小值為:" + min);
        JOptionPane.showMessageDialog(null, "三個(gè)數(shù)的平均值為:" + ave);
        JOptionPane.showMessageDialog(null, "三個(gè)數(shù)由大到小為:" +  Arrays.toString(order));
    }

附:下面是公用函數(shù)部分:

    private static int[] OrderNum(int a, int b, int c) {
        int tmp = 0;
        if (a < b){
            tmp = a;
            a = b;
            b = tmp;
        }
        if (a < c){
            tmp = a;
            a = c;
            c = tmp;
        }
        if (b < c){
            tmp = b;
            b = c;
            c = tmp;
        }
        int[] nums ={a, b, c};
        return nums;
    }

    private static int MaxNum(int a, int b, int c) {
        int tmp = 0;
        if (a < b){
            tmp = a;
            a = b;
            b = tmp;
        }
        if (a < c){
            tmp = a;
            a = c;
            c = tmp;
        }
        if (b < c){
            tmp = b;
            b = c;
            c = tmp;
        }
        return a;
    }

    private static int MinNum(int a, int b, int c) {
        int tmp = 0;
        if (a < b){
            tmp = a;
            a = b;
            b = tmp;
        }
        if (a < c){
            tmp = a;
            a = c;
            c = tmp;
        }
        if (b < c){
            tmp = b;
            b = c;
            c = tmp;
        }
        return c;
    }

    private static double AveNum(int a, int b, int c) {
        int sum = a + b + c;
        return (double)sum/3;
    }

總結(jié) 

到此這篇關(guān)于java四種常用輸入方法的文章就介紹到這了,更多相關(guān)java輸入方法內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!

相關(guān)文章

  • Java如何基于wsimport調(diào)用wcf接口

    Java如何基于wsimport調(diào)用wcf接口

    這篇文章主要介紹了Java如何基于wsimport調(diào)用wcf接口,文中通過示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友可以參考下
    2020-06-06
  • Java 最重要布局管理器GridBagLayout的使用方法

    Java 最重要布局管理器GridBagLayout的使用方法

    GridBagLayout是java里面最重要的布局管理器之一,可以做出很復(fù)雜的布局,可以說GridBagLayout是必須要學(xué)好的的,需要的朋友可以了解下
    2012-12-12
  • java實(shí)現(xiàn)釘釘機(jī)器人消息推送的示例代碼

    java實(shí)現(xiàn)釘釘機(jī)器人消息推送的示例代碼

    這篇文章主要介紹了java實(shí)現(xiàn)釘釘機(jī)器人消息推送的示例代碼,文中通過示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2020-01-01
  • Ubuntu 使用Jni開發(fā)實(shí)例詳解

    Ubuntu 使用Jni開發(fā)實(shí)例詳解

    這篇文章主要介紹了Ubuntu 使用Jni開發(fā)實(shí)例詳解的相關(guān)資料,需要的朋友可以參考下
    2016-10-10
  • Spring Boot項(xiàng)目如何使用外部application.yml配置文件啟動(dòng)JAR包

    Spring Boot項(xiàng)目如何使用外部application.yml配置文件啟動(dòng)JAR包

    文章介紹了SpringBoot項(xiàng)目通過指定外部application.yml配置文件啟動(dòng)JAR包的方法,包括設(shè)置spring.config.location參數(shù)、打包注意事項(xiàng)及路徑格式要求,強(qiáng)調(diào)外部配置優(yōu)先級(jí)和覆蓋機(jī)制,提供Linux/Windows啟動(dòng)示例,需要的朋友跟隨小編一起學(xué)習(xí)吧
    2025-08-08
  • 詳解Java中String,StringBuffer和StringBuilder的使用

    詳解Java中String,StringBuffer和StringBuilder的使用

    這篇文章主要為大家詳細(xì)介紹了Java中String,StringBuffer和StringBuilder三者的區(qū)別以及使用,文中的少了講解詳細(xì),感興趣的可以了解一下
    2022-07-07
  • SSM框架前后端信息交互實(shí)現(xiàn)流程詳解

    SSM框架前后端信息交互實(shí)現(xiàn)流程詳解

    這篇文章主要介紹了SSM框架前后端信息交互實(shí)現(xiàn)流程詳解,文中通過示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友可以參考下
    2020-07-07
  • SpringBoot 如何實(shí)現(xiàn)多版本接口的方法步驟

    SpringBoot 如何實(shí)現(xiàn)多版本接口的方法步驟

    本文主要介紹了SpringBoot 如何實(shí)現(xiàn)多版本接口的方法步驟,包括幾種接口多版本控制的方式,文中通過示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2026-04-04
  • Java線程的全方位詳解

    Java線程的全方位詳解

    Java 給多線程編程提供了內(nèi)置的支持。 一條線程指的是進(jìn)程中一個(gè)單一順序的控制流,一個(gè)進(jìn)程中可以并發(fā)多個(gè)線程,每條線程并行執(zhí)行不同的任務(wù),多線程是多任務(wù)的一種特別的形式,但多線程使用了更小的資源開銷
    2021-10-10
  • Java中的static關(guān)鍵字用法總結(jié)

    Java中的static關(guān)鍵字用法總結(jié)

    這篇文章主要介紹了Java中的static關(guān)鍵字用法總結(jié),static是Java50個(gè)關(guān)鍵字之一,static關(guān)鍵字可以用來修飾代碼塊表示靜態(tài)代碼塊,修飾成員變量表示全局靜態(tài)成員變量,修飾方法表示靜態(tài)方法,需要的朋友可以參考下
    2023-11-11

最新評(píng)論

衡水市| 西乌| 辽宁省| 内乡县| 菏泽市| 奎屯市| 涿鹿县| 宁远县| 望城县| 东丽区| 廉江市| 江川县| 延安市| 万源市| 汝州市| 郧西县| 出国| 丰县| 上栗县| 宝山区| 香河县| 刚察县| 新民市| 页游| 竹北市| 常山县| 曲阜市| 若尔盖县| 铜鼓县| 五大连池市| 资阳市| 上犹县| 泽州县| 长沙县| 维西| 兴安县| 三原县| 洛隆县| 云阳县| 根河市| 浏阳市|