关于next(),nextInt(),nextLine()输入时产生的问题

本文讲述了Java中Scanner类的next和nextLine方法的特性,以及它们在处理用户输入时可能出现的问题,如空格导致的输入中断和文件路径解析错误,以及解决方法——在连续使用next时插入sc.nextLine()以清除遗留的空格。
摘要由CSDN通过智能技术生成

 1.next(nextInt)和nextline共同使用

next和nextline都是接收字符串,但是next遇到空格,tab,enter都会结束,而且不会接收这些空白字符

nextline()只有在遇到enter才会结束,并且会接收enter.

此时就引入来我们的第一个问题:

public static void main(String[] args) {
        Scanner sc  = new Scanner(System.in);
        String s1 = sc.next();
        String s2 = sc.nextLine();
        System.out.print(s1+" "+s2);

    }

可以发现我们在输入next之后就结束了,当next(nextInt)和nextLine连用的时候,next不会接收enter,此时ernter还留在sc中,如果下一次输入还是用next的话,也会跳过enter继续接收后面的字符串.

但是下一次如果是nextLine的话,他就会接收上一个enter进而直接结束本次输入.

遇到此种情况,我们可以在中间加一个sc.nextLine()专门用来接收空格,此时代码正常

public static void main(String[] args) {
        Scanner sc  = new Scanner(System.in);
        String s1 = sc.next();
        sc.nextLine();
        String s2 = sc.nextLine();
        System.out.print(s1+" "+s2);

    }

2.多个next(nextInt)的使用出现的问题

多个next的使用,next中是不能有空格的.这种情况经常出现在我们输入一个文件路径的时候,如果是以next输入一定要保证没有空格.如果有空格输入不会结束.但是next在接收的时候就会出现问题

第一个next接收到空格处停止,而第二个next就会继续接收到enter停止,这就会导致我们输入的文件路径出现问题,从空格处一分为二,还会导致下一次输入直接无效.

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值