1、基本语法

1.1基本使用方法

本篇博客重点nextLine()会读取换行('\r'),但是不会进行输出。

Java中Scanner类中的方法next()和nextLine()都是吸取输入台输入的字符,区别:next()不会吸取字符前/后的空格/Tab键,只吸取字符,开始吸取字符(字符前后不算)直到遇到空格/Tab键/回车截止吸取; nextLine()吸取字符前后的空格/Tab键,回车键截止。

输入两行字符串:

我爱学JAVA 我真的很爱爱学JAVA

我真的很爱很爱学JAVA

期望输出结果:

我爱学JAVA 我真的很爱爱学JAVA

我真的很爱很爱学JAVA

package scanner;

import java.util.Scanner;

public class Sun_01 {

public static void main(String[] args) {

Scanner scanner = new Scanner(System.in);

String str1 = scanner.nextLine();

String str=scanner.next();

System.out.println(str1);

System.out.println(str);

scanner.close();

}

}

没错,和我们期望输出结果一样。

2、nextLine()易错点

2.1 nextLine()使用错误案例

我们第一行使用next()进行读入,第二行使用nextLine()进行读入两行字符串

输入两行字符串:

我爱学JAVA

我爱学JAVA 我真的很爱爱学JAVA

期望输出结果:

我爱学JAVA

我爱学JAVA 我真的很爱爱学JAVA

package scanner;

import java.util.Scanner;

public class Sun_01 {

public static void main(String[] args) {

Scanner scanner = new Scanner(System.in);

String str = scanner.next();

String str2=scanner.nextLine();

System.out.println(str);

System.out.println(str2);

scanner.close();

}

}

会发现,输入台输入“我爱学JAVA"后接着输出了,与我们期望输出结果不一样。

到底是因为什么呢?

Scanner是一个扫描器,我们录取到键盘的数据,先存到缓存区等待读取,它判断读取结束的标示是 空白符;比如空格,回车,tab 等等。

next()方法读取到空白符就结束,也就是读取完“我爱学JAVA”;

nextLine()只读取到回车结束也就是“\r”;

通俗解释为:因为next()读取到空白符前的数据时结束了,然后把回车“\r”留给了nextLine();所以上面nextLine()没有输出,不输出不代表没数据,是接到了空(回车“/r”)的数据。

正确的解决方式:

package scanner;

import java.util.Scanner;

public class Sun_01 {

public static void main(String[] args) {

Scanner scanner = new Scanner(System.in);

String str = scanner.next();

String str1=scanner.nextLine();

String str2=scanner.nextLine();

System.out.println(str);

System.out.println(str2);

scanner.close();

}

}

解决方式为多用一个nextLine()将换行读入。

java里next 和nextline_详解Java中方法next()和nextLine()的区别与易错点相关推荐

  1. java 配置文件的路径_详解java配置文件的路径问题

    详解java配置文件的路径问题 详解java配置文件的路径问题 各种语言都有自己所支持的配置文件,配置文件中有很多变量是经常改变的.不将程序中的各种变量写死,这样能更方便地脱离程序本身去修改相关变量设 ...

  2. Java 里的异常(Exception)详解

    作为一位初学者, 本屌也没有能力对异常谈得很深入.   只不过java里关于Exception的东西实在是很多. 所以这篇文章很长就是了.. 一, 什么是java里的异常 由于java是c\c++ 发 ...

  3. java 死锁 内存消耗_详解Java中synchronized关键字的死锁和内存占用问题

    先看一段synchronized 的详解: synchronized 是 java语言的关键字,当它用来修饰一个方法或者一个代码块的时候,能够保证在同一时刻最多只有一个线程执行该段代码. 一.当两个并 ...

  4. java使用集合存储过程_详解java调用存储过程并封装成map

    详解java调用存储过程并封装成map 发布于 2020-5-1| 复制链接 摘记: 详解java调用存储过程并封装成map           本文代码中注释写的比较清楚不在单独说明,希望能帮助到大 ...

  5. java同步异步调用_详解java 三种调用机制(同步、回调、异步)

    1:同步调用:一种阻塞式调用,调用方要等待对方执行完毕才返回,jsPwwCe它是一种单向调用 2:回调:一种双向调用模式,也就是说,被调用方在接口被调用时也会调用对方的接口: 3:异步调用:一种类似消 ...

  6. java 线程一直运行状态_详解JAVA 线程-线程的状态有哪些?它是如何工作的?

    线程(Thread)是并发编程的基础,也是程序执行的最小单元,它依托进程而存在. 一个进程中可以包含多个线程,多线程可以共享一块内存空间和一组系统资源,因此线程之间的切换更加节省资源.更加轻量化,也因 ...

  7. java mysbatis select_java相关:详解Mybatis中的select方法

    java相关:详解Mybatis中的select方法 发布于 2020-7-3| 复制链接 摘记: selectById方法根据id,查询记录 ```java public void updateRe ...

  8. java注解 源码_详解Java注解教程及自定义注解

    详解Java注解教程及自定义注解 更新时间:2016-02-26 11:47:06   作者:佚名   我要评论(0) Java注解提供了关于代码的一些信息,但并不直接作用于它所注解的代码内容.在这个 ...

  9. java的注解方式_详解Java注解的实现与使用方法

    详解Java注解的实现与使用方法 Java注解是java5版本发布的,其作用就是节省配置文件,增强代码可读性.在如今各种框架及开发中非常常见,特此说明一下. 如何创建一个注解 每一个自定义的注解都由四 ...

最新文章

  1. 计算机模拟组装测试题一,江苏专转本计算机模拟自测试题(一)
  2. 深度学习模型那么多,科学研究选哪个?
  3. 神经网络中归一化的重要作用
  4. 【控制】《现代控制理论》谢克明老师-第3章-线性控制系统的能控性和能观测性
  5. php queryList函数,QueryList/QueryList.php at master · baijunyao/QueryList · GitHub
  6. 检索数据_17_按照指定的次序返回查询结果
  7. 轻松实现深度Clone | Source Generators方式
  8. Java ClassLoader getPackage()方法与示例
  9. ASP.NET后台调用前台JS函数的三种常见方法
  10. arm linux 存储,linux arm的存储分布那些事
  11. 【clickhouse】Clickhouse的MySQL引擎同步数据不准确 Decimal
  12. 编程之美 裴波那楔数列
  13. 如何使用Java语言实现一个网页爬虫
  14. 数据结构与算法80道
  15. 逻辑强化(03)真假推理 知识练习
  16. win10用户名改了以后,C盘中用户文件夹下的以用户名命名的文件夹名字没有变化?还是之前的用户
  17. h5页面制作案例-高水准页面制作引领营销风潮
  18. java多线程归并排序_并行计算实验-串、并行排序算法
  19. 开源的Android视频播放器
  20. 数据中心的“灾备”指的是什么?

热门文章

  1. 九年级计算机上册教学总结,九年级英语上册教学总结范例
  2. Unity在华为M6上面发布
  3. Java程序员:一整个项目的具体开发流程介绍
  4. IDEA字体颜色、主题风格个性化 —— 手把手带你尽展个性
  5. SuperFetch
  6. 【Python爬虫实战】3.A股上市公司年报关键词词频分析
  7. WeGroup 第五周总结
  8. java江湖2新手开局攻略_烟雨江湖攻略大全 新手攻略开局流程汇总[多图]
  9. 徐新说:创业是艰难的要懂得坚持住
  10. html网页图片和文字水平居中垂直居中显示