Java中方法next()和nextLine()的区别有什么

发布时间:2020-11-02 15:01:03 作者:Leah
来源:亿速云 阅读:144

Java中方法next()和nextLine()的区别有什么?很多新手对此不是很清楚,为了帮助大家解决这个难题,下面小编将为大家详细讲解,有这方面需求的人可以来学习下,希望你能有所收获。

1、基本语法

1.1基本使用方法

nextLine()会读取换行('\r'),但是不会进行输出。

Java中Scanner类中的方法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 str1 = scanner.nextLine();
    String str=scanner.next();
    System.out.println(str1);
    System.out.println(str);
    scanner.close();
  }
}

Java中方法next()和nextLine()的区别有什么

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

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中方法next()和nextLine()的区别有什么

​ 会发现,输入台输入“我爱学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();
  }
}

Java中方法next()和nextLine()的区别有什么

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

看完上述内容是否对您有帮助呢?如果还想对相关知识有进一步的了解或阅读更多相关文章,请关注亿速云行业资讯频道,感谢您对亿速云的支持。

推荐阅读:
  1. php趣味编程 - php 输出九九乘法
  2. 从零开始,搭建网络管理系统-前期准备

免责声明:本站发布的内容(图片、视频和文字)以原创、转载和分享为主,文章观点不代表本网站立场,如果涉及侵权请联系站长邮箱:is@yisu.com进行举报,并提供相关证据,一经查实,将立刻删除涉嫌侵权内容。

java next() nextline()

上一篇:Windows环境下Python3.6.8 importError: DLLload failed:找不到指定的模块怎么解决

下一篇:使用C++实现逆波兰表达式

相关阅读

您好,登录后才能下订单哦!

密码登录
登录注册
其他方式登录
点击 登录注册 即表示同意《亿速云用户服务条款》