• 博客园logo
  • 会员
  • 众包
  • 新闻
  • 博问
  • 闪存
  • 赞助商
  • HarmonyOS
  • Chat2DB
    • 搜索
      所有博客
    • 搜索
      当前博客
  • 写随笔 我的博客 短消息 简洁模式
    用户头像
    我的博客 我的园子 账号设置 会员中心 简洁模式 ... 退出登录
    注册 登录

escapedlili

  • 博客园
  • 联系
  • 订阅
  • 管理

公告

View Post

Day4 -1 流程控制-用户交互Scanner, next

用 Scanner来获取用户的输入
1.
语法: Scanner scanner = new scanner( System in)
关闭: scanner.close

关闭这个scanner, 凡事属于IO流(即输入输出流)的类如果不关闭会一直占用资源,所以用完要关闭

  1. 接收
    next ( ): 使用next 的方式进行接收
  • next

必须要读到有效字符后才会结束输入
有空格就会去掉,只保留空格前的输入

  • nextLine

一回车键为结束字符,可以获得空白

代码例子(next)
import java.util.Scanner; //把scanner倒入进来
public class Demo02 {
    public static void main(String[] args) {
        // 创造一个scanner对象,用于接收键盘数据
        Scanner scanner = new Scanner(System.in);

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

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

            scanner.close(); // 关闭这个scanner, 凡事属于IO流(即输入输出流)的类如果不关闭会一直占用资源,所以用完要关闭
        }
    }
}


代码例子(nextLine)
public class Demo2 {
    public static void main(String[] args) {
        Scanner scanner = new Scanner(System.in);
        System.out.println("用nextLine的方式接收:");

        if (scanner.hasNextLine()) {
            String str = scanner.nextLine();
            System.out.println("输入的内容为:" + str);

        }

        scanner.close();

    }
}

没有if条件也是一样用的

点击查看代码
public class Demo02 {
public static void main(String[] args) {
Scanner scanner = new Scanner(System.in);
System.out.println("请输入数据:");

String str = scanner.nextLine();
System.out.println("输入内容为:" + str);

scanner.close();

  }
}

next有很多细节:nextInt, nextFloat, nextDouble等等...

点击查看代码
public class Demo02 {
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();

}
}


结合起来做一道题

点击查看代码
public class Demo02 {
    public static void main(String[] args) {
        // 我们可以输入多个数字,并求其总和与平均数,没输入一个数字用回车确认,通过输入非数字来结束输入并输出执行结果:
        Scanner scanner = new Scanner(System.in);
        double sum = 0;
        // 计算输入来多少个数字
        int m = 0;

        System.out.println("请输入数据(如需停止请输入除数字外任何):");

        // 通过循环来判断是否还有输入,并在里面对每一次进行求和统计
        while (scanner.hasNextDouble()) {
            double x = scanner.nextDouble();

            m = m + 1; // m++

            sum = sum + x;

            System.out.println("你输入了第" + m + "个数据,当前数据的和为: " + sum);

        }

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

        scanner.close();

    }
}

posted on 2025-09-09 09:57  escapedlili  阅读(6)  评论(0)    收藏  举报

刷新页面返回顶部
 
博客园  ©  2004-2025
浙公网安备 33010602011771号 浙ICP备2021040463号-3