首页 > 编程语言 > 详细

5.java基础-流程控制-Scanner对象

时间:2021-06-29 14:57:36      阅读:10      评论:0      收藏:0      [点我收藏+]

java.util.Scanner 是java5的新特征,我们可以通过Scanner类来获取用户的输入

基本语法:

Scanner s = new Scanner(System.in);

通过Scanner类的next()与nextline()方法获取输入的字符串,在读取前我们一般需要使用hasNext()与hasNextLine()判断是否还要输入的数据。

next()方法:

  1. 一定要读取到有效字符后才可以结束输入
  2. 对输入有效字符之前遇到的空白,next()方法会自动将其去掉。
  3. 只有输入有效字符后才将其后面输入的空白作为分隔符或者结束符。
  4. next()不能得到带有空格的字符

实例:

//创建一个扫描器对象,用于接收键盘的数据
Scanner scanner = new Scanner(System.in);
System.out.println("使用next方法接收");

//判断用户有没有输入字符串
if (scanner.hasNext()){
//接收用户的输入
String str = scanner.next(); //程序会等用户输入完毕
System.out.println("输入的内容为:"+str);
}
scanner.close();//关闭 凡是属于I/O流 都需要关闭
结果:
使用next方法接收
hello world(输入内容)
输入的内容为:hello

我们输入了hello world,但是他只输出了hello。
此实例验证了:next()不能得到带有空格的字符

nextLine()方法:

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

实例:

Scanner scanner  = new Scanner(System.in);
System.out.println("使用nextLine方法接收");
//判断用户有没有输入字符串
if (scanner.hasNextLine()){
String str = scanner.nextLine();
System.out.println(str);
}

scanner.close();
结果:
使用nextLine方法接收
hello world
hello world

我们输入了hello world,中间带空格,输出的结果也会把空格后的字符得到。
此实例验证了:nextLine()能得到带有空格的字符!

Scanner的进阶使用

可以使用nextInt(),nextFloat(),....,来精确的获取其他类型的输入。同时也会有相对于的判断是否还有数据的hasNextInt(),hasNextFloat()。

实例:

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


输出结果:
清输入整数:
5
整数:5
清输入小数:
2.3
小数:2.3

总结(一个小程序)

要求:输入多个数字,并秋其总和与平均数,每输入一个数字用回车确认,通过输入非数字来结束输入并输出执行结果
代码如下:

//输入多个数字,并秋其总和与平均数,每输入一个数字用回车确认,通过输入非数字来结束输入并输出执行结果
        Scanner scanner = new Scanner(System.in);
        double sum = 0.0D;
        int count = 0;
        System.out.println("请输入数字(任意非数字结束运行。Enter进行下一个输入):");
        while (scanner.hasNextDouble()){
            double count1 = scanner.nextDouble();
            sum = count1 + sum;
            count++;
            System.out.println("你输入了第:"+count+"个数据,当前的总和为:"+sum);
        }
        System.out.println(count+"个数字的总和:"+sum);
        System.out.println(count+"个数字的平均数为:"+(sum/count));
        scanner.close();

输出结果:
请输入数字(任意非数字结束运行。Enter进行下一个输入):
9
你输入了第:1个数据,当前的总和为:9.0
6
你输入了第:2个数据,当前的总和为:15.0
4
你输入了第:3个数据,当前的总和为:19.0
5
你输入了第:4个数据,当前的总和为:24.0
x
4个数字的总和:24.0
4个数字的平均数为:6.0

5.java基础-流程控制-Scanner对象

原文:https://www.cnblogs.com/yiwuwuyi/p/14949633.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!