java中Scanner的nextLine和next方法

思考,输入1 2 3 4 5加上enter,输出什么

java 复制代码
import java.util.Scanner;

public class Main {
    public static void main(String[] args) {
        Scanner sc = new Scanner(System.in);
        int[][] m = new int[2][2];
        for (int i = 0; i < 2; i++) {
            for (int j = 0; j < 2; j++) {
                m[i][j] = sc.nextInt();
                System.out.println(m[i][j]);
            }
        }
        String d = sc.nextLine();
        System.out.println(d);
    }
}

答案

其中字符串d是" 5",有一个空格

我的猜想是前面1,2,3,4解析完成后确实剩下" 5"

于是全部给了d

next方法和nextLine方法不同

next()

读取一个单词,即从输入流中读取第一个空白符之前的字符,空白符可以是空格、Tab、回车等。

遇到空白符会停止,且不会读取该空白符 。

在读取过程中,如果输入中包含多个单词,它只会读取第一个单词,后面的内容会留在输入流中供后续方法使用。

nextLine()

读取整行字符串,即从当前光标位置读取到回车符之前的所有字符。

读取到换行符结束,并将该行的数据(包括空格)完整返回。

用于读取包含空格的整行文本,比如用户输入一句话时,它会将整句话读取出来。

java 复制代码
import java.util.Scanner;

public class Main {
    public static void main(String[] args) {
        Scanner sc = new Scanner(System.in);
        int[][] m = new int[2][2];
        for (int i = 0; i < 2; i++) {
            for (int j = 0; j < 2; j++) {
                m[i][j] = sc.nextInt();
                System.out.println(m[i][j]);
            }
        }
        String d = sc.next();
        System.out.println(d);
    }
}
相关推荐
xiaogai_gai2 分钟前
采购业务退款单同步实战:从钉钉审批流到金蝶云星空付款单
java·数据库·钉钉
二哈赛车手23 分钟前
新人笔记---hermes定时功能设计,具体讲解以及可优化点
java·人工智能·笔记·spring·ai·typescript
ZWZhangYu28 分钟前
从 Dify 实践理解大模型上下文缓存
java·后端·spring
小熊恋旧31 分钟前
Python 面向对象编程:方法、属性、继承与多态详解
开发语言·python
云边云科技_云网融合32 分钟前
面向汽车零部件制造业场景的解决方案 | 70 秒:一台车下线的时间里,藏着五张网
开发语言·汽车·php
Evand J33 分钟前
【PMSM滤波例程2】PMSM未知负载转矩观测EKF。MATLAB例程(负载增广EKF与实际仿真结果)。附下载链接
开发语言·matlab·电机
小羊没烦恼!1 小时前
关于分布式锁原理的一些学习与思考-redis分布式锁,zookeeper分布式锁
java·服务器·网络·学习·负载均衡
will_net1 小时前
apollo 站点部署&C#接入
开发语言·c#·apollo
晗夜未央2 小时前
任务队列反复失败,先分清重试、阻塞和结果待核对
开发语言·javascript
熊猫钓鱼>_>2 小时前
四种书签,一条时间线:一个读书 App 的记忆颗粒与它的边界案例【鸿蒙心迹】
开发语言·华为·ai编程·harmonyos·鸿蒙·openharmony·鸿蒙pc