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);
    }
}
相关推荐
wangl_922 分钟前
C# / .NET 在工业环境中的优势
开发语言·c#·.net·.netcore·.net core·visual studio
史迪仔01123 分钟前
[QML] Qt5/6图像色彩空间处理
开发语言·前端·c++·qt
北冥湖畔的燕雀6 分钟前
C++日志系统:从原理到实战实现
java·开发语言
java修仙传7 分钟前
Java 实习日记:一次 Excel 导入校验 Bug 的定位与数据更新逻辑优化
java·数据库·bug·excel·后端开发
小短腿的代码世界8 分钟前
传感器暗战:Qt Sensors如何让桌面应用“感知“物理世界?
开发语言·qt
小小编程路9 分钟前
增强版 JavaScript 读取 Excel
开发语言·javascript·excel
稽稽稽稽不如人9 分钟前
《从零开始的java从入门到入土的学习生活——Java后端篇》Chapter21——Java后端篇学习记录——Redis初步入门
java·学习·生活
吃好睡好便好10 分钟前
在Matlab中绘制马鞍函数曲面图
开发语言·人工智能·学习·算法·matlab·信息可视化
测试员周周11 分钟前
【Appium 系列】第01节-Appium 是什么 — 移动端自动化的行业标准
开发语言·人工智能·python·功能测试·appium·自动化·测试用例
ID_1800790547313 分钟前
淘宝店铺所有商品 API 接口:核心能力与数据返回参考
java·服务器·前端