首页 > 其他分享 >Day02-11 用户交互Scanner

Day02-11 用户交互Scanner

时间:2023-07-06 17:11:13浏览次数:40  
标签:11 Scanner Day02 System println out 输入 scanner

Scanner对象

  • 之前我们学的基本语法中我们并没有实现程序和人的交互,但是java给我们提供了这样一个工具类,我们可以获取用户的输入。java.util.Scanner是java5的新特征,我们可以通过Scanner类来获取用户的输入。

  • 基本语法:

Scanner s = new Scanner(System.in);
  • 通过Scanner类的next()与nextLine()方法获取输入的字符串,在读取前我们一般需要使用hasNext()与hasNextLine()判断是否还有输入的数据。

        //创建一个扫描器对象,用于接收键盘数据
       Scanner scanner = new Scanner(System.in);

       System.out.println("使用next方式接收:");

       //判断用户有没有输入字符串
       if(scanner.hasNext()){
           //使用next的方式接收
           String str = scanner.next();//程序会等待用户输入完毕
           System.out.println("输入的内容为:" + str);
      }

       //凡是属于IO流的类如果不关闭会一直占用资源,要养成好习惯用完就关掉
       scanner.close();
        //从键盘接收数据
       Scanner scanner = new Scanner(System.in);

       System.out.println("使用nextLine方式接收:");

       //判断是否还有输入
       if (scanner.hasNextLine()){
           //使用nextLine的方式接收
           String str = scanner.nextLine();//程序会等待用户输入完毕
           System.out.println("输入的内容为:" + str);
      }

       //凡是属于IO流的类如果不关闭会一直占用资源,要养成好习惯用完就关掉
       scanner.close();
  • next():

    1. 一定要读取到有效字符后才可以结束输入。

    2. 对输入有效字符之前遇到的空白,next() 方法会自动将其去掉。

    3. 只有输入有效字符后才将其后面输入的空白作为分隔符或者结束符。

    4. next() 不能得到带有空格的字符串。

  • nextLine():

    1. 以Enter为结束符,也就是说 nextLine()方法返回的是输入回车之前的所有字符。

    2. 可以获得空白。

案例1:用户输入数据,判断是整数和小数,否则报错

        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();

案例2:输入多个数字,并求其总和与平均数,每输入一个数字用回车确认,通过输入非数字来结束输入并输出执行结果

        Scanner scanner = new Scanner(System.in);

       //和
       double sum = 0;
       //计算输入了多少个数字
       int m = 0;

       //通过循环判断是否还有输入,并在里面对每一次进行求和和统计
       while(scanner.hasNextDouble()){
           double x = scanner.nextDouble();
           m = m + 1;//m++
           sum = sum + x;//sum+=x
           System.out.println("你输入了第"+m+"个数据,当前结果sum="+sum);
      }
       System.out.println("和为:"+sum+"平均数为:"+sum/m);

       scanner.close();
 

标签:11,Scanner,Day02,System,println,out,输入,scanner
From: https://www.cnblogs.com/Iwtr/p/17532714.html

相关文章

  • Day02-10 包机制
    包机制为了更好地组织类,java提供了包机制,用于区别类名的命名空间包语句的语法格式为:packagepkg1[.pkg2[.pkg3...]]一般利用公司域名倒置作为包名为了能够使用某一个包的成员,我们需要在java程序中明确导入该包。使用“import”语句可完成此功能。importpacka......
  • 错误:rpmdb: BDB0113 Thread/process 8709/139671674841152 failed
    rpm库报错错误:rpmdb:BDB0113Thread/process8709/139671674841152failed:BDB1507ThreaddiedinBerkeleyDBlibrary错误:db5错误(-30973)来自dbenv->failchk:BDB0087DB_RUNRECOVERY:Fatalerror,rundatabaserecovery错误:无法使用db5- (-30973)打开Packages......
  • 一个C++11的线程函数
    一个C++11的线程函数#include<iostream>#include<thread>#include<chrono>voidprintNumbers(){for(inti=1;i<=100;++i){std::cout<<i<<std::endl;std::this_thread::sleep_for(std::chrono::millis......
  • 22年11月Tita360评估题库上线
    1.  支持设计问卷时,从题库批量导入题目Tita-OKR和新绩效一体化管理平台使用场景:企业之前没有做过360评估活动,不知道如何创建合适的问卷;或者企业想用一些新的不同维度的题目进行评估2. 活动发布后新增的被评估人增加未发放标识使用场景:在活动发布后新增大量被评估人......
  • Day11-设计模式之享元模式
    设计模式之享元模式一、意图在面向对象系统的设计和实现中,创建对象是最为常见的操作。这里面就有一个问题:如果一个应用程序使用了太多的对象,就会造成很大的存储开销。特别是对于大量轻量级(细粒度)的对象,比如在文档编辑器的设计过程中,我们如果为每个字母创建一个对象的话,系统可......
  • 跨平台应用的全新时代:Avalonia V11
    译介今天,我们非常高兴地宣布Avalonia11.0版本的发布!在经历了近一年的预览版本和无数个数以千计的工作小时后,现在是时候发布一款改变游戏规则的跨平台应用程序开发工具了。Avaloniav11代表着我们在实现目标上的巨大飞跃,为开发人员提供了高效、功能丰富和无缝的体验,可以在所有主......
  • 基于瑞芯微平台cif接口dvp相机的视频接入(ov2640、rv1126为例)
    名词定义CIF,指RK芯片中的VIP模块,用以接收Sensor数据并保存到Memory中,仅转存数据,无ISP功能DVP,一种并行数据传输接口,即DigitalVideoPortHSYNC,指DVP接口的行同步信号PCLK,指Sensor输出PixelClockVSYNC,指DVP接口的场同步信号V4L2,即Video4Linux2,Linuxkernel的视频处理模块 ......
  • Win11 安装 WSA
    1.WSA安装前提确保Windows11版本为22000.xxx或更高版本。硬件必须支持并启用BIOS/UEFI虚拟化确保微软商店版本为22110.1402.6.0或更高版本,并单击“获取更新”按钮升级其版本。安卓子系统默认会分配4G内存,建议16G内存以上的电脑使用。2.开启Hyper-V进入控制面板→程序→......
  • rv1126平台spi屏调试
    我们使用的rv1126平台,屏icST7789,硬件使用6bit,由于不是8bit的,所以显示的颜色没有那么丰富1.硬件原理图2.dts配置 &rgb{    status="okay";     pinctrl-names="default";    pinctrl-0=<&lcdc_ctl>;       ports{ ......
  • RV1126 Linux 以太网MAC PHY 芯片8201f gmac dts配置
    RK系列的SoC中内置了以太网MAC控制器,所以只需要搭配一颗以太网PHY芯片,即可实现以太网卡功能。按照规范,即使是不同厂家的PHY,同样有一部分寄存器的定义是通用的,只要配置了这些通用的寄存器,基本上PHY就可以正常工作。在Linux驱动中有通用的PHY驱动,目前的芯片所配......