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);
    }
}
相关推荐
CoderYanger3 小时前
A.每日一题:输入单词需要的最少按键次数 Ⅰ+Ⅱ
java·数据结构·算法·leetcode·面试
Cosolar3 小时前
一文弄懂 Agent Harness 与 Agent Runtime 的区别
java·后端·github
海兰3 小时前
【 Python 量化交易】第3章:金融基础概念
开发语言·python·金融
一木 之林4 小时前
三.C++ 内存管理(进阶)(二)
开发语言·arm开发·c++
吴声子夜歌4 小时前
Java——类、对象及方法(一)
java·开发语言
程序员夏洛4 小时前
Redis 的持久化机制有哪些?
java·数据库·redis
阿里嘎多学长4 小时前
2026-08-29 GitHub 热点项目精选
开发语言·程序员·github·代码托管
凯尔萨厮4 小时前
Java学习笔记十(注解)
java·笔记·学习
এ慕ོ冬℘゜4 小时前
JavaScript学习心得:从只会语法,到真正会写业务逻辑
开发语言·javascript·ecmascript
钱栈up4 小时前
VSCode 调试多模块 Maven + Spring Boot 后端:从启动失败到一次跑通
java·spring boot·maven