代码中nextLine()输入为空字符串而next()可输入,原因及解决

今天我写了一个代码,这个代码是通过 switch 来实现的计算器。在让输入字符的过程中,使用的是 nextLine()方法。然而,当走到这个方法时,并没有让我进行输入操作,而是它自己输入了一个“”,也就是空字符串。

代码中nextLine()输入为空字符串而next()可输入,原因及解决

<code class="language-java">package com.baidu.switch1;
import java.util.Scanner;
public class Test2 {
公共静态 void 主函数(字符串数组 args){  }
创建一个 Scanner 对象,该对象用于从系统输入流(System.in)中读取用户输入。
System.out.println("要输入第一个数字啦");
		int num1 = scanner.nextInt();
以特定的输出方式即 System.out.println 输出“请输入第 2 个数字”;
		int num2 = scanner.nextInt();
System.out.println("请输入你要进行何种运算");
使用 scanner 读取下一行内容并赋值给 nextLine 变量。
		switch (nextLine) {
		case "+":
输出 num1 与 num2 相加的结果。
			break;
		case "-":
输出 num1 减去 num2 的结果。
			break;
		default:
System.out 会打印出“其他的就不测试了”。
			break;
		}
	}
}

上面的内容就是出现情况的代码

怎么解决的 ?

后来我测试了一下,用next也是可以进行输入的。

但是我需要搞明白为什么。

next()需读取到有效字符才可结束输入。对于输入有效字符之前所遇到的空格键、Tab 键或 Enter 键等结束符,next()方法会自动将其去除。仅在输入有效字符之后,next()方法才会将其后输入的空格键、Tab 键或 Enter 键等视为分隔符或结束符。

简单来说,next()的作用是查找并返回此扫描器的下一个完整标记。这个完整标记的前后是与分隔模式相匹配的输入信息。正因如此,next 方法无法获取带空格的字符串。

NextLine()方法的结束符仅为 Enter 键。也就是说,NextLine()方法返回的是 Enter 键之前的所有字符。并且,它能够获取到包含空格的字符串。

你可能想看:
« 上一篇
下一篇 »

相关推荐

java中什么是冒泡,冒泡算法

2026年09月06日

26阅读

java中冒号,java双冒号

2026年09月06日

23阅读

java中的->,java中的是什么意思

2026年09月06日

24阅读

java中的super用法,Java中super的说明

2026年09月06日

27阅读

java中反射的应用,java中反射的应用场景

2026年09月06日

23阅读

java中开关的定义,Java关键字有哪些

2026年09月06日

24阅读