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);
    }
}
相关推荐
胡乱儿起个名29 分钟前
《高阶函数:把函数当玩具传来传去》
开发语言·c++·算法
七七知享30 分钟前
开启 Python 编程之旅:基础入门实战班全解析
开发语言·python·程序人生·程序员·零基础·实战
repetitiononeoneday31 分钟前
java基础课程-springmvc课程
java·开发语言
Mr.每天进步一小步40 分钟前
每天记录一道Java面试题---day39
java·jvm·面试
工业互联网专业41 分钟前
基于springboot+vue的数码产品抢购系统
java·vue.js·spring boot·毕业设计·源码·课程设计·数码产品抢购系统
敖云岚41 分钟前
【AI】SpringAI 第二弹:接入 DeepSeek 官方服务
java·人工智能·spring boot·后端·spring
purrrew1 小时前
【数据结构_6】双向链表的实现
java·数据结构·链表
古月居GYH1 小时前
嵌入式C语言高级编程:OOP封装、TDD测试与防御性编程实践
c语言·开发语言·tdd
nangonghen1 小时前
JAVA程序实现mysql读写分离并在kubernetes中演示
java·mysql·mybatis·读写分离
ghost1431 小时前
Python自学第1天:变量,打印,类型转化
开发语言·python·学习