如何在Java中使用Scanner实现一行内输入多个整数值
解决方案
你现有代码的核心逻辑本身就已经支持输入一行用空格分隔的5个整数:Scanner的nextInt()方法默认会忽略所有空白分隔符(包括空格、换行符、制表符等),你之前的逐行输入效果是每次输入后主动按回车导致的,并非代码不支持单行输入。
但你提供的代码存在两处基础问题:
- 缺少
java.util.Scanner的导包声明 numbers()方法缺少闭合的大括号,会导致编译报错
修复语法问题后的可运行代码如下,直接运行后即可在提示行后输入1 2 3 4 5按回车完成读取:
import java.util.Scanner; public class Awit { static void numbers(){ Scanner user = new Scanner(System.in); int arraylist[] = new int [5]; System.out.println("Enter five integers:"); for(int i = 0; i<=4; i++){ arraylist[i] = user.nextInt(); } user.close(); // 验证输入结果可删除 System.out.println("输入的整数为:"); for (int num : arraylist) { System.out.print(num + " "); } } public static void main (String []args){ numbers(); } }
如果你需要严格限制只能从同一行读取5个整数,禁止跨行输入,可以先读取整行内容再拆分转换,实现代码如下:
import java.util.Scanner; public class Awit { static void numbers(){ Scanner user = new Scanner(System.in); int arraylist[] = new int [5]; System.out.println("Enter five integers:"); // 强制读取整行输入 String inputLine = user.nextLine(); // 按任意空白字符拆分输入内容 String[] numStrs = inputLine.trim().split("\\s+"); // 输入数量校验可根据需求调整 if(numStrs.length != 5) { System.out.println("输入错误:请输入恰好5个整数"); user.close(); return; } // 转换为整数存入数组 for(int i = 0; i < 5; i++){ arraylist[i] = Integer.parseInt(numStrs[i]); } user.close(); // 验证输入结果可删除 System.out.println("输入的整数为:"); for (int num : arraylist) { System.out.print(num + " "); } } public static void main (String []args){ numbers(); } }
内容的提问来源于stack exchange,提问作者William Rowell Gimena2à2ĎĖ3
相关产品推荐
相关产品推荐

