【Java基础】Scanner中next与nextLine区别

2023-11-02

Scanner概念

scanner可以用来获取用户的输入,八个基本数据类型除字符外都可以输入,另外输入字符串有两种方式next与nextLine。接下来介绍他们的区别。

1.next与nextLine的区别

1.1 区别一
  	    String st1 = scanner.nextLine();
        String st2 = scanner.next();

        System.out.println("nextLine方式输入:" + st1);
        System.out.println("next方式输入:" + st2);

从运行结果看出:nextLine方式输入的字符串可以含有空格,也就是说它是以回车作为输入的结束符。

next输入的字符串不能含有空格,它以空格、tab、回车作为输入的结束符。

1.2 区别二
  	    int num = scanner.nextInt(); // 8
        String st = scanner.nextLine(); // hello java

        System.out.println(num + "===========" + st); // 8 =======

在这里插入图片描述

可以看到,还没等我输入字符串,本次输入就自动结束了。显然没有达到我的期望。

结论:nextLine会读取到回车作为他的值。

如何解决这个问题:

1.就以nextLine来读取上一次输入的回车作为它的值。

   	    int num = scanner.nextInt(); 
        scanner.nextLine(); //读取回车
        String st = scanner.nextLine(); 
        System.out.println(num + "===========" + st);

可以看出问题解决。

多一行代码总感觉不爽,还有没有其他解决方案呢?

2.以next来读入字符串,前提必须是所输入的字符串不能包含空格。

	    int num = scanner.nextInt();
        String st = scanner.next();
        System.out.println(num + "====" + st);

可以看出问题也可以解决。

3.在业务允许的情况下,可以将字符串输入放到第一行,避免读入回车作为他的值。

        String st = scanner.nextLine(); //第一行输入
        int num = scanner.nextInt(); 
        System.out.println(num + "====" + st);

在这里插入图片描述
问题也可以解决。

总结next与nextLine区别

next nextLine
不能读入含有空格的字符串,以空格、Table、回车作为本次输入的结束符 可以读入空格、以回车作为结束符
不会读取回车作为它的值 会读取回车作为它的值
补充一种方法

可以通过把输入nextLine字符串当作一个方法封装起来,然后调用这个方法。


public class ScannerDemo {

	public static int getInt() {
		return new Scanner(System.in).nextInt();
	}
	
	public static String getString() {
		return new Scanner(System.in).nextLine();
	}
	
}

测试一下

	int x = ScannerDemo.getInt();
		String st =  ScannerDemo.getString();
		System.out.println(x);
		System.out.println(st);

在这里插入图片描述

可以看出nextLine读取回车的问题已经没有了。所以这种方法也是可行的。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

【Java基础】Scanner中next与nextLine区别 的相关文章

  • Java学习笔记 --- 布尔类型

    一 布尔类型 1 布尔类型也叫boolean类型 boolean类型数据只允许取值true和false 无null public class Bool public static void main String args boolean
  • 接口如何实现多态

    抽象类是用来继承的 不能被实例化 抽象类里可以有成员变量 接口中没有 1 抽象类里的抽象方法 只有在子类实现了才能使用 2 抽象类里的普通方法 可被子类调用 3 接口里的方法 都被默认修饰为public abstract类型 4 接口里的变
  • Java特训的第一天——开篇

    我是一名刚入门的Java菜鸟 我选择Java的原因是因为其语法简单 功能强大 从web 到桌面 到嵌入式 无所不能 下面我将谈一谈我对Java语言的认识 Java语言概述 关于Java的介绍网上有很详细的阐述 我在这里就不再细述了 下面只简
  • Java基础——strictfp关键字

    关键字strictfp是strict float point的缩写 指的是精确浮点 它是用来确保浮点数运算的准确性 JVM在执行浮点数运算时 如果没有指定strictfp关键字 此时计算结果可能会不精确 而且计算结果在不同平台或厂商的虚拟机
  • 5、面向对象的设计思想

    一 面向对象设计思想 1 1 面向过程的设计思想与面向对象的设计思想 例如 我要去新疆 面向过程 我开车 我挂挡 我踩油门 我过河北 我过陕西 面向对象 我命令车去新疆 车怎么去不关我事 信息封装在这这个类的内部 我不用去了解车整个开动的过
  • JAVA中的while do-while循环以及for循环的深刻理解 入门 小白必看

    循环 循环 循环 循环的作用 提出问题为什么需要循环 解决问题循环的出现 while 前序 循环 while循环的语法与流程以及细节 do while 后序循环 do while循环的语法和流程 while和do while 之间的区别 f
  • 【java基础】 方法,实参和形参,方法的重载,签名,递归

    目录 方法概念及使用 实参和形参的关系 重要 方法的重载 方法签名 简单了解 递归 简单介绍 方法概念及使用 方法就是一个代码片段 类似于 C 语言中的 函数 作用 是能够模块化的组织代码 当代码规模比较复杂的时候 做到代码被重复使用 一份
  • MQ的基本原理是怎样的?MQ的优点有哪些?MQ的核心概念包括哪些?MQ的消息传递模式有哪些?

    1 MQ的基本原理是怎样的 MQ 消息队列 是一种面向消息的中间件 用于实现不同系统之间的异步通信 其基本原理如下 生产者 Producer 将消息发送到消息队列中 而不是直接发送给消费者 Consumer 消息队列将接收到的消息存储在内部
  • 【Java】Java中的String类

    文章目录 一 认识 String 类 二 String 类的常用方法 2 1 构造方法 2 2 String 类对象之间的比较 2 3 字符串查找 2 4 字符串的转换 2 5 字符串替换 2 6 字符串拆分 2 7 字符串截取 2 8 字
  • [透彻]为什么要前后端分离?

    前后端分离的意义 前后端分离 已成为互联网项目开发的业界标准使用方式 前后端分离 会为以后的大型分布式架构 弹性计算架构 微服务架构打下坚实的基础 核心思想 前端页面调用后端的restuful api接口 并使用json数据进行交互 服务器
  • 进制及进制转换详解。原码、反码、移码,补码区别介绍。(通俗易懂)

    目录 前言 一 十进制 n进制 进制转换详解 1 先说说什么是进制 2 二进制介绍 3 十进制 n进制 进制转换详解 重点 十进制 gt n进制 2 8 16 n进制 2 8 16 gt 十进制 非十进制间的互相转化 二 原码 反码 移码
  • JAVA,异常

    异常概念 通常大家认为异常就是错误 但这个错误有很多种 1 语法错误 2 JVM虚拟机错误 3 平台错误 4 程序运行错误 平台或者资源或者逻辑 数值等错误 常见的异常 1 java lang NullPointerException 空指
  • java 泛型 作用与定义

    1 泛型方法的定义和使用 public static void main String args throws ClassNotFoundException String str get 哈士奇 world System out print
  • Java学习13:面向对象-多态(Polymorphism)内存分析图解

    1 概述 多态是Java面向对象三大特征之一 多态 Polymorphism 顾名思义 即对象具有多种形态 具体而言 是编译时类型 运行时类型 编译时类型 由声明时的类型决定 一般是父类 运行时类型 由实际对应的对象类型决定 具体是哪个子类
  • jeecgboot问题解决方案

    常见问题Q A JEECG老版在线文档 点击进入 1 后台访问提示token错误 报错截图 解决方案 JeecgBoot后台的所有请求访问 增加了token机制 所以不能直接访问后台 而需要通过前台登录才能访问 默认前台访问地址 http
  • Java 泛型 T,E,K,V,?

    泛型带来的好处 在没有泛型的情况的下 通过对类型 Object 的引用来实现参数的 任意化 任意化 带来的缺点是要做显式的强制类型转换 而这种转换是要求开发者对实际参数类型可以预知的情况下进行的 对于强制类型转换错误的情况 编译器可能不提示
  • JAVA 8 新特性及使用

    1 前言 2019年9月19日java13已正式发布 感叹java社区强大 经久不衰 由于国内偏保守 新东西总要放一放 让其他人踩踩坑 等稳定了才会去用 并且企业目的还是赚钱 更不会因为一个新特性去重构代码 再开发一套程序出来 甚者国内大多
  • 关于svn如何上传一个完整的项目

    注意 请一定要按照该步骤进行操作 请上传新项目时将项目名称进行规范命名 例如原始文件是arrange v2 将此项目需要注入新的医院 则命名为 arrange 某医院名称 门诊或者医技或者药房 v2 重新命名文件夹名称快捷键 F12 一 先
  • mysql无法连接问题及其环境变量配置

    问题 Can t connect to MySQL server on localhost 3306 10061 方案一 不推荐 第一 在环境变量 系统变量的path中添加mysql的bin目录 我的是D mysql mysql 8 0 2
  • 黑豹程序员-字符串中查找出重复的字符串

    Collections frequency codeList element 字符串element 在codeList集合中重复的次数 List

随机推荐

  • 常见网络安全名词

    常见网络安全名词 木马 木马是指恶意代码伪装成正常的程序 当被运行时 会获取到整个系统的权限 比如往年的灰鸽子 蜜蜂大盗等 木马基本有四个特征 隐蔽性 欺骗性 顽固性和危害性 木马种类繁多 网页木马 网页木马是指恶意网页伪装成正常的页面 如
  • 学编程和乐高机器人的区别

    学编程和乐高机器人的区别 小孩的学习一直都是很多家长们十分关心和重视的一件事情 很多的家长在培养孩子的学习的时候 会给孩子选择一些能够提升孩子能力的课程 就拿现在很多的家长想要孩子去学习机器人编程的课程来说 有的家长对于学编程和乐高机器人的
  • 【Vuex】状态管理

    文章目录 优势 核心概念 State mapState辅助函数 Getter 通过属性访问 通过方法访问 mapGetters 辅助函数 Mutation 可以传参 对象风格的提交方式 Mutation 必须是同步函数 在组件中提交 Mut
  • springboot启动后,执行某个方法的实现方式

    1 注解 PostConstruct 直接在方式上面加注解 但是会影响服务提供 比如这个方法要执行五分钟 这五分钟之内是无法提供服务的 这个方法是在服务初始化后之前运行 所以 此方法运行不结束 服务就无法初始化 构造函数 Autowired
  • log日志配置简述

    近期进行log升级 简单配置了下几种常用日志 分别是log4j log4j2 logback 简单整理 不全不深 仅备后用 需求 将应用日志以控制台或文件的形式输出 一 log4j 1 引入jar包 下载并引入log4j的jar包 log4
  • 蓝桥杯真题javaB第三题:振兴中华

    第三题 振兴中华 题目描述 小明参加了学校的趣味运动会 其中的一个项目是 跳格子 地上画着一些格子 每个格子里写一个字 从我做起振 我做起振兴 做起振兴中 起振兴中华 比赛时 先站在左上角的写着 从 字的格子里 可以横向或纵向跳到相邻的格子
  • .net core 在ubuntu系统下保存图片到本地

    这就是一个坑 using MemoryStream ms new MemoryStream imgBts using Image img Image FromStream ms img Save tempPic jpg 原来在 net Fr
  • 12关于FFmpeg的四种时基和时基相关函数的分析及其场景用法

    12关于FFmpeg的四种时基和时基相关函数的分析及其场景用法 前言 AVRational类型 是一个分数 例如 1 25 表示1除以25即1 25 时基 时间的单位 在ffmpeg下被描述成时基 时间戳 某个时刻的时间 1 FFmpeg的
  • vs更换本地git账号

    有人认为vs中用的git账号是哪个无所谓 其实不然 git账号不同 访问的权限就不一样 那么如果想跟换git账号该怎么做呢 win7 控制面板 gt 用户帐户和家庭安全 gt 凭据管理器 编辑普通凭据中的git账号或者直接删除 然后重启vs
  • 响应式布局 与 Bootstrap

    一 响应式布局 1 什么是响应式布局 使用媒体查询针对不同宽度的设备进行布局和样式设置 从而实现适配不同设备的目的 2 响应式布局的容器 响应式需要一个父级做为布局容器 来配合子级元素来实现变化效果 原理就是在不同屏幕下 通过媒体查询来改变
  • configure移植技巧,绝对干货

    一 环境 主机 ubuntu 开发板 arm linux 二 configure分析 build host target介绍 build为主机环境 如ubuntu redhat等等 执行gcc v命令可以查看到Target变量 build
  • 【STM32+cubemx】0015 HAL库开发:内部flash读写

    本节我们来学习stm32内部flash的读写 在某些应用中 我们需要保存少量掉电仍然不丢失的数据 而在电路板上额外增加一块eeprom或者flash又太浪费硬件资源 这时我们就可以把这些数据保存在stm32内部的flash里 1 stm32
  • debian11 安装 postgress 数据库 -- chatGPT

    问 debian 安装 postgress 数据库 gpt 要在Debian上安装PostgreSQL数据库 您可以按照以下步骤进行操作 1 打开终端 您可以通过点击 应用程序 菜单 然后在 系统工具 或 终端 下找到终端应用程序 2 使用
  • 【100天精通Python】Day43:Python网络爬虫开发_爬虫基础(urlib库、Beautiful Soup库、使用代理+实战代码)

    目录 1 urlib 库 2 Beautiful Soup库 3 使用代理 3 1 代理种类 HTTP HTTPS 和 SOCKS5 3 2 使用 urllib 和 requests 库使用代理
  • 推荐一波Git学习资料

    关于Git的用法我们已经写七篇文章 介绍了Git的不少用法 这些足以应付工作中90 的需求了 剩下的10 就需要小伙伴们在工作中自己慢慢总结了 我这里再给小伙伴们推荐一点Git学习资料 为我们的Git系列画上一个句号 书 推荐两本个人觉得很
  • 2018第八届至2022年第十三届蓝桥杯单片机开放与设计省赛客观题及简解整理

    前言 由于本人马上要参加第十四届蓝桥杯单片机设计与开发的省赛了 在对客观题复习两轮后 发现效率是比较低的 因此整理了2018至2022年的省赛客观题 将大概的考点划分三部分 这样可以更加系统的复习其内容 现在把整理的这份内容分享给各位同学
  • 微信小程序的this.setData()方法更新二级属性数据

    在用this setData 更新数据时 如果要更新的数据如下 data person name xiaoming occupation front end engineer 要把person name更新为 xiaogang 我们如果通过
  • ElementUI 之 el-tabs添加自定义按钮

  • oauth2 jwt token 返回accessToken对象中携带用户字段信息

    oauth2 源码中用户信息只返回用户名称 现有需求要求返回userId 只能重写某些方法 server端和client端都要修改 方法一 结果 userId 封装在token中 需要解析access token才能看到 但是经测试发现 使
  • 【Java基础】Scanner中next与nextLine区别

    Scanner概念 scanner可以用来获取用户的输入 八个基本数据类型除字符外都可以输入 另外输入字符串有两种方式next与nextLine 接下来介绍他们的区别 1 next与nextLine的区别 1 1 区别一 String st