栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 软件开发 > 后端开发 > Java

详解Java中方法next()和nextLine()的区别与易错点

Java 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

详解Java中方法next()和nextLine()的区别与易错点

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()内容请搜索考高分网以前的文章或继续浏览下面的相关文章希望大家以后多多支持考高分网!

转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/130711.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号