学习日记(用户交互 Scanner)

学习日记

用户交互 Scanner

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

  • 使用 next() 方法
package com.Sun3285.scanner;

import java.util.Scanner;

public class PracticeOne {

    public static void main(String[] args) {

        //创建一个扫描器对象 scanner,用于接收键盘数据
        Scanner scanner = new Scanner(System.in);  //通过 System.in 接收用户的输入,封装为 scanner 对象

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

        //判断用户有没有输入字符串
        if (scanner.hasNext()){
            //使用 next 方式接收
            String str = scanner.next();
            System.out.println("输入的内容为:" + str);
        }
        
        //凡是属于 IO 流的类,如果不关闭会一直占用资源,要养成好习惯,用完就关掉
        scanner.close();
    }
}

  • 使用 nextLine() 方法
package com.Sun3285.scanner;

import java.util.Scanner;

public class PracticeTwo {

    public static void main(String[] args) {

        Scanner scanner = new Scanner(System.in);

        System.out.println("请输入:");

        if(scanner.hasNextLine()){

            String str = scanner.nextLine();
            System.out.println("输入的内容为:"+ str);
        }
        
        //凡是属于 IO 流的类,如果不关闭会一直占用资源,要养成好习惯,用完就关掉
        scanner.close();
    }
}

  • next() 和 nextLine() 区别

① next() 在输入有效字符后才将其后面的空白作为分隔符或结束符,回车结束输入,nextLine() 遇到回车结束输入。

② next() 不能获得空白,nextLine() 可以。

③ next() 在输入有效字符前遇到空白,自动将其去掉。


  • Scanner 进阶使用一:判断输入是否是整数或小数。
package com.Sun3285.scanner;

import java.util.Scanner;

public class PracticeThree {
    public static void main(String[] args) {
        Scanner scanner = new Scanner(System.in);

        //从键盘接收数据
        int x = 0;
        double y = 0.0;

        System.out.println("请输入数字:");

        if(scanner.hasNextInt()){
            x = scanner.nextInt();
            System.out.println("这个数是整数!");
        }else{
            if(scanner.hasNextDouble()){
                y = scanner.nextDouble();
                System.out.println("这个数是小数!");
            }else{
                System.out.println("输入不是整数或小数");
            }
        }
        scanner.close();
    }
}

  • Scanner 进阶使用二:输入多个数字,求其总和和平均数,每输入一个数字回车确认,通过输入非数字结束输入并输出结果。
package com.Sun3285.scanner;

import java.util.Scanner;

public class PracticeFour {
    public static void main(String[] args) {
        //输入多个数字,求其总和和平均数,每输入一个数字回车确认,通过输入非数字结束输入并输出结果
        Scanner scanner = new Scanner(System.in);

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

        System.out.println("请输入数字后按 Enter 确认,输入非数字结束:");

        while(scanner.hasNextDouble()){
            double x = scanner.nextDouble();
            a++;        //a = a + 1;
            sum = sum + x;
            System.out.println("当前输入"+a+"个数字,现在的总和为:"+sum);
        }

        System.out.println(a + "个数的总和为:" + sum);
        System.out.println(a + "个数的平均数为:" + sum/a);

        scanner.close();
    }
}

输入小数时可能会出现问题,如


注意:

  • Alt + Enter 可以自动检查错误的地方。
  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

Sun 3285

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值