Java中的nextLine(), nextInt(),next()

本文深入解析Java中nextInt(), next() 和 nextLine()的区别与使用技巧。详细阐述了nextInt()读取整数,next()读取至空格,而nextLine()则完整读取一行,包括空格。并提供了解决nextInt()后直接调用nextLine()导致的“ ”问题的方法。

Java中的nextLine(), nextInt(),next()

最近在写Java代码中,遇到了一个问题,下面是部分代码

 for (int i = 0; i < array1.length; i++) {
        array1[i] = scanner.nextInt();
    }
    
    while(m > 0) {
        String str = scanner.nextLine();//输入一个字符串,字符串第一个为想要的操作,后两个为操作的ID
        String[] array2 = str.split(" "); //按空格进行分割
        char ch = array2[0].charAt(0);//读取操作是U还是Q`


在代码的最后一行报错,说是越界。但是我要读取的是0,0应该不会越界的。百度查了一圈关于charAt()越界的问题,但是没有任何结果。然后,看到一个关于nextLine()解释的文章后,发现错误其实是在nextLine()那一行。
因为nextLine()前面有nextInt()在的时候,nextLine()读到的是nextInt()读完Int数值后剩下的“\n”。因此就好像直接跳过了 String str = scanner.nextLine();这一行。
所以,如果想要在nextInt()后读取一行,就需要在while之前加上一行scanner.nextLine();,这样,str就可以正常输入了

next(),nextInt(),nextLine()

nextInt(): 它只读取int值,nextInt()在读取输入后将光标放在同一行
next():只读取输入直到空格。它不能读由空格隔开的两个单词。同样,next()在读取输入后将光标放在同一行
nextLine():读取输入,包括单词之间的空格(即读取到行\n的末尾)。读取输入后,nextLine()将光标定位在下一行

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值