next()与nextLine()的区别

本文详细解释了Java中Scanner类next()与nextLine()方法的区别及应用场景。next()在遇到空格时即认为输入结束,适用于不含空格的字符串;nextLine()则在遇到回车换行前一直读取输入,适合含有空格的字符串。文章通过示例代码展示了两种方法的使用技巧,并给出了避免输入错误的建议。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

import java.util.Scanner;

/*
键盘输入:
    next()与nextLine()的区别?

    next(),读取输入的数据时,遇到空格等空白字符,就认为本次数据输入结束
    nextLine(),读取输入的数据时,遇到回车换行才认为结束


    上一个接收输入的语句是nextInt(),next(),nextDouble()....
    下一个紧接着的接收输入的语句是nextLine()
    这个时间发现第二个输入语句,还没有输入呢,就结束了。

    因为:nextInt(),next(),nextDouble()....它没有读取 回车换行符,数据通道(IO流)中还有回车换行符,
    那么下一个nextLine(),一看通道中有 回车换行符,就以为输入结束了。

结论:
    如果字符串中不会包含空格,那么建议大家使用next()更好。
    如果字符串中想要包含空格,那么nextLine()的前面还有其他输入的话,加一句input.nextLine()把前面的回车换行读取掉。

 */
public class TestNextAndNextLine {
    public static void main(String[] args) {
        Scanner input = new Scanner(System.in);
        
        System.out.print("请输入年龄:");
        int age = input.nextInt();
        System.out.println("age = " + age);
        input.nextLine();//左边不用变量不用接收,目的只是把年龄后面的回车换行符读取掉
                        //当下面name用的是nextLine(),就需要加这句代码,如果下面name用的是next()就不用加这句代码。

        System.out.print("请输入一个姓名:");
        String name = input.nextLine();
        /*
        next()方法:
        张三              name = "张三";
        张 三,认为张后面空格,就是结束了,而不是回车换行结束  name = "张";

        nextLine()方法:
        张三
        张  三
        都可以接收
         */

        System.out.println("name = " + name);

        input.close();
    }
}

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值