首页 > 其他分享 >01 用户交互Scanner

01 用户交互Scanner

时间:2023-01-22 02:11:08浏览次数:44  
标签:01 Scanner sc1 System 键盘 println 交互 out

01 用户交互Scanner

Scanner

  • 要导入包 :import java.util.Scanner;
  • 从键盘上读取数据
  • //开始时的固定套路:Scanner sc1 = new Scanner(System.in);
    // 中间的关键步骤:String str1=sc1.next(); 或者String str2=sc2.nextLine(); 后者更好用
    // 将 键盘上输入的字符串 存放在 变量 str 中
    //结束时的固定套路:sc1.close(); 凡是属于IO流的类如果不关掉就会一直占用资源,要养成良好习惯用完就关掉

基本语法等

  • 创建一个扫描器对象,用于接收键盘数据,但是这里此时并没有真正用调用到键盘

  • Scanner sc1 = new Scanner(System.in);

    // 类 对象 创建 (系统输入)

  • 方法:真正地调用键盘的情况是在调用各种相关方法时会使用到,最后返回数值

    • next() 、nextLine() :从键盘上获取输入的字符串
    • hasNext()、 hasNextLine() : 判断是否有符合需要的字符串 ,一般与 if () 语句一起使用
    • nextInt() 、nextFloat()、nextDouble() ··· :从键盘上获取输入的数据,分别对应 int ,float, double···
    • hasNextInt()、 hasNextFloat() 、hasNextDouble(): 判断是否有符合需要的数据,一般与 if () 语句一起使用

next() 、nextLine()的区别

读取字符串的话最好使用 nextLine() 吧

image

代码

Test01_Scanner

package com.zhan.base_2;

import java.util.Scanner;  //导入包

//开始时的固定套路:Scanner sc1 = new Scanner(System.in);
// 中间的关键步骤:String str1=sc1.next(); 或者String str2=sc2.nextLine();  后者更好用
   // 将 键盘上输入的字符串 存放在 变量 str 中
//结束时的固定套路:sc1.close();
public class Test01_Scanner {
    public static void main(String[] args) {


        /*创建一个扫描器对象,用于接收键盘数据,但是这里此时并没有真正用调用到键盘
             真正地调用键盘的情况是在调用各种相关方法时会使用到
             比如 sc1.hasNext(),sc1.next()
             sc2.hasNextLine(),sc2.nextLine()
             hasNextInt(),scanner.nextInt()
             hasNextFloat(),scanner.nextFloat()
         */
          Scanner sc1 = new Scanner(System.in); // 输入new Scanner(System.in);后按 alt+enter 自动补全
//        类      对象  创建      (系统输入)

        System.out.println("使用next方式接收");
        // 使用 hasNext() 判断用户有没有输入字符串 , 可以不用判断,但最好是用
        if(sc1.hasNext()) {              //调用方法,先从键盘上读取数据,然后返回结果(布尔值),if()里面默认为真
            String str1 = sc1.next();    //调用方法,从键盘上读取数据,然后返回数据,再赋值 不如 nextLine 好用
            System.out.println("输入内容为:" + str1);
        }

            //凡是属于IO流的类如果不关掉就会一直占用资源,要养成良好习惯用完就关掉
            sc1.close();      //关掉语句

        }
    }

Test01_Scanner_2

package com.zhan.base_2;

import java.util.Scanner;

public class Test01_Scanner_2 {
    public static void main(String[] args) {
        System.out.println("使用nextLine方式接收");
        Scanner sc2 = new Scanner(System.in);
        if(sc2.hasNextLine()){
            String str2=sc2.nextLine();
            System.out.println("输入的内容为:"+str2);
        }
        sc2.close();
    }
}

Test01_Scanner

package com.zhan.base_2;

import java.util.Scanner;

public class Test02_Scanner {
    public static void main(String[] args) {
        Scanner scanner = new Scanner(System.in);
        int i=0;
        float f= 0.0f;
        System.out.println("请输入整数:");
        if (scanner.hasNextInt()){       //调用方法,先从键盘上读取数据,然后返回结果,再判断输入的数是否为整数
            i= scanner.nextInt();        //调用方法,从键盘上读取数据,然后返回数据,再赋值
            System.out.println(i);
        }else System.out.println("输入的不是整数!");
        System.out.println("请输入浮点数:");
        if (scanner.hasNextFloat()){      //调用方法,先从键盘上读取数据,然后返回结果,再判断输入的数是否为浮点数
            f=scanner.nextFloat();        //调用方法,从键盘上读取数据,然后返回数据,再赋值
            System.out.println(f);
        }else System.out.println("输入的不是浮点数!");
        scanner.close();
    }
}

Test02_Scanner_2

package com.zhan.base_2;

import java.util.Scanner;

public class Test02_Scanner_2 {
    // 通过空格或者回车,从键盘上输入多个数值,求和并求平均数
    public static void main(String[] args) {
        int sum=0;
        int n=0;
        Scanner scanner = new Scanner(System.in);   // 输入new Scanner(System.in);后按 alt+enter 自动补全
        System.out.println("请输入double 数据,输入非double数据结束计算");
        while(scanner.hasNextDouble()){
            double x = scanner.nextDouble();    // scanner.nextDouble();后 按 alt+enter 自动补全
            n++;  //  n+=1; n=n+1
            sum+=x;
            System.out.println("当前"+n+"个数总和为:"+sum);
        }
        scanner.close();
        System.out.println(n+"个数的总和为:"+sum);
        System.out.println(n+"个数的平均数为:"+(sum/n));
    }
}

标签:01,Scanner,sc1,System,键盘,println,交互,out
From: https://www.cnblogs.com/zhanjianhai/p/17064147.html

相关文章

  • 2023-01-21 除夕
    2023-01-21周六今天早上叫醒我的居然不是´•ﻌ•`潮剧了,也不是经典的“十仙庆寿”,依旧是叫卖声。十一点多人们就开始陆陆续续的去祠堂拜祖,期间回家贴对联,去叔叔家给他儿......
  • 【算法-基础之排序01】Go语言实现
    仓库码云地址远程仓库地址声明本人是个菜鸟,不一定对哦。。。我只测试一个是正确的。还有对于数组只有一个数或者nil的不考虑。先写一个公共的方法。替换俩个位置的数......
  • Python——01.环境及安装
    Python介绍--Python是解释型,面向对象的语言,程序结构简洁,清晰--Python解释器分类:CPython(官方解释器):用C语言编写的Python解释器PyPy:用Python语言编写的Python......
  • x210-2023-01-20
    1、三星S5PV210手册GPJ0CON寄存器是4bit对应一个pin脚的,所以GPJ0CON[7]~GPJ0CON[0]刚好平分32bit,但这里不是要说的重点,而是GPJ0DAT[7:0],因为到了19-ARM硬件接口GPIO4,如果......
  • 2023-01-20 早上被叫醒的是老家“情报中心”的开会声
    2023-01-20周五今天早上被叫醒的不是梦想,是老家经典的“情报中心”开会声,是早早出来售卖各种用来“念心”的肉丸子的叫卖声,我猜明天叫醒我的就应该是潮汕地区特别经典的......
  • 2023-01-16 下高铁一堆人热情迎接 找培民
    2023-01-16周一16号坐高铁回家,下站后外面一片人,都是开小汽车三轮车和摩托车的司机。在拉客,嘴里喊着隆江惠来溪西有无。因为我知道外面有班车能到达我要去的地方所以我......
  • 2023-01-18 隆江猪脚饭
    2023-01-18周三关于隆江猪脚饭,隆江本地哪家猪脚饭最正宗,这个问题一直被讨论着。网络上各种网红来隆江打开隆江猪脚饭的时候,无疑是“猪脚兴饭店”这家店。有人说很好吃......
  • 230120_50_SpringBoot入门
    springboot自动配置原理总结(参考狂神说)以HttpEncodingAutoConfiguration(Http编码自动配置)为例解释自动配置原理;//表示这是一个配置类,和以前编写的配置文件一样,也可以给......
  • VS2010编译jpeg.lib
    --------------------------------------------2.打开VS2010命令行,进入jpeg-9a目录----------------------------------------------------------------------------------......
  • .NET周报【1月第3期 2023-01-20】
    这应该是2023年农历新年前的最后一篇.NET周报,再次预祝大家新年快乐!国内文章看我是如何用C#编写一个小于8KB的贪吃蛇游戏的https://www.cnblogs.com/InCerry/p/building-......