java里next 和nextline_详解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();

}

}

b4c027fd8ab75c0fe8e408c085954efb.png

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

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();

}

}

117bf520f64ff117bade89252f6932f6.png

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

}

}

3d2c8d7557d6a72a118499cea49e2241.png

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

  • 1
    点赞
  • 6
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值