Java标准输入Scanner中的hasNext如何终止(校招笔试踩坑)

校招时由于有些公司的题的输入是一个数组,但是没有告知数组的长度,所以在使用hasNext时会形成死循环,退出死循环正常来讲只能在while中加入条件来判断,满足条件后break。有些公司直接没有终止符的提示,但是在做携程的笔试题时给了以“#”为终止符,但是笔试时还是没有弄明白如何处理。在用sc.next()判断是否等于“#”时,会将该输入用来作为判断使用,也就是把输入数据“吞了”,笔试后查了查资料,写了个demo测试了一下在这里做一个记录:

利用hasNext的重载方法:

public class StandardInput {
    public static void main(String[] args) {
        Scanner sc = new Scanner(System.in);
        List<Integer> list = new ArrayList<>();
        while(!sc.hasNext("#")){
            int a = sc.nextInt();
            list.add(a);
        }
        System.out.println(list);
    }
}

输出:

1 2 3 4 5 6 #
[1, 2, 3, 4, 5, 6]
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值