Java删除数组指定索引元素时如何从用户处获取数组输入
解决方案
你可以通过Scanner组件获取用户输入的整数数组,以下是修改后的完整可运行代码,核心是新增了先读取数组长度、再依次读取每个数组元素的逻辑:
import java.util.*; public class Test11 { public static int[] removeTheElement(int[] arr, int index) { if (arr == null || index < 0 || index >= arr.length) { return arr; } int[] anotherArray = new int[arr.length - 1]; for (int i = 0, k = 0; i < arr.length; i++) { if (i == index) { continue; } anotherArray[k++] = arr[i]; } return anotherArray; } public static void main(String[] args) { Scanner adnan = new Scanner(System.in); // 新增用户输入数组逻辑 System.out.println("请输入数组的长度:"); int arrLength = adnan.nextInt(); int[] arr = new int[arrLength]; System.out.println("请依次输入"+arrLength+"个整数,每输入一个按回车确认:"); for (int i = 0; i < arrLength; i++) { arr[i] = adnan.nextInt(); } // 原有删除逻辑保留 System.out.println("Original Array: " + Arrays.toString(arr)); System.out.println("Index to be removed: "); int index = adnan.nextInt(); arr = removeTheElement(arr, index); System.out.println("New Array: " + Arrays.toString(arr)); adnan.close(); } }
如果你希望用户可以单行输入所有数组元素,也可以用以下逻辑替换上述数组输入部分:
System.out.println("请输入所有整数,用空格分隔,输入完成后按回车:"); adnan.nextLine(); // 消化掉之前输入遗留的换行符 String inputContent = adnan.nextLine(); // 按空格分割输入内容,兼容多个空格的情况 String[] numStrArr = inputContent.trim().split("\\s+"); int[] arr = new int[numStrArr.length]; for (int i = 0; i < numStrArr.length; i++) { arr[i] = Integer.parseInt(numStrArr[i]); }
注意事项
- 代码使用完Scanner后调用
close()方法释放IO资源 - 如果需要兼容用户输入非整数的异常场景,可以在外层增加
try-catch捕获InputMismatchException、NumberFormatException做异常提示
内容的提问来源于stack exchange,提问作者adnanadel
相关产品推荐
相关产品推荐

