java 中 next() 与 nextLine() 方法的区别

在说它俩的不同之处前,先说说它俩的相同之处:

next() 和 nextLine() 读取的结果都是 String 类型,返回 string 类型

java 中 Scanner 类中的 next() 方法和 nextLine() 方法的区别

  • next() 不会读取字符前/后的空格/Tab键,只读取字符(忽略空格回车等等),开始读取字符(字符前后不算)直到遇到空格/Tab键/回车截止;( 包括nextInt()、nextDouble()、nextFloat()等 )遇到了空格, 就不再录入数据了 。

结束标记: 空格, tab键。

  • nextLine() 读取字符前后的空格/Tab键,直到回车键截止。可以将数据完整的接收过来。读取一行,注意到如果是一行的话,空格不作为分隔符,一行一行的取,以回车(换行)结束一次取值

结束标记: 回车换行符。

测试代码:

package test;   
import java.util.*;  
public class Main {  
    public static void main(String[] args) {  
        String s1,s2;    
        Scanner sca = new Scanner(System.in);
        System.out.print("请输入第一个字符串:");
        s1 = sca.nextLine();
        System.out.println("输入的字符串是:" + s1);  
        System.out.print("请输入第二个字符串:");
        s2 = sca.next();
        System.out.println("输入的字符串是:" + s2);  
        }  
}  

 运行结果:

请输入第一个字符串:    hello    
输入的字符串是:    hello    
请输入第二个字符串:    world    
输入的字符串是:world

注意:nextLine() 不能用在 nextIn() 后面。
因为nextLine() 方法返回的是Enter键之前的所有字符,在使用了 nextInt() 方法之后在其后输入的空格键、Tab 键或 Enter 键等视为分隔符或结束符,其仍在缓冲区内;若紧接着使用 nextLine() ,则 nextLine() 自动读取 Enter 等作为其结束符,则无法从键盘输入值,强行输入会报出 InputMismatchException 异常。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

M_emory_

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值