Java实现:如何让程序接收命令行空格分隔的整数列表输入
把插入排序程序改成接收命令行输入的方法(Mac + Eclipse)
别担心,完全没接触过命令行也没关系,我一步步给你讲清楚怎么改程序,还有怎么在Eclipse里用命令行参数运行~
第一步:修改Java驱动类代码
原来的驱动类里硬编码了数组,现在我们要改成从main方法的String[] args参数里获取输入——这个args就是命令行里输入的空格分隔的内容,每个元素对应一个输入的字符串。
下面是修改后的完整示例代码(假设你的插入排序方法已经写好了,叫insertionSort):
public class InsertionSortDriver { // 你的插入排序方法,保留原来的逻辑就行 public static void insertionSort(int[] arr) { int n = arr.length; for (int i = 1; i < n; ++i) { int key = arr[i]; int j = i - 1; while (j >= 0 && arr[j] > key) { arr[j + 1] = arr[j]; j = j - 1; } arr[j + 1] = key; } } // 打印数组的辅助方法 public static void printArray(int[] arr) { int n = arr.length; for (int i = 0; i < n; ++i) { System.out.print(arr[i] + " "); } System.out.println(); } public static void main(String[] args) { // 先判断有没有输入参数 if (args.length == 0) { System.out.println("请输入空格分隔的整数列表作为命令行参数!"); return; } // 把命令行的字符串参数转成int数组 int[] arr = new int[args.length]; try { for (int i = 0; i < args.length; i++) { arr[i] = Integer.parseInt(args[i]); } } catch (NumberFormatException e) { System.out.println("输入无效!请确保所有参数都是整数。"); return; } // 执行排序并输出结果 System.out.println("排序前的数组:"); printArray(arr); insertionSort(arr); System.out.println("排序后的数组:"); printArray(arr); } }
第二步:在Eclipse里运行带命令行参数的程序
因为你平时用Eclipse,直接在这里设置参数就行,不用打开终端:
- 右键你的驱动类(比如上面的
InsertionSortDriver),选择 Run As > Run Configurations... - 在弹出的窗口里,切换到 Arguments 标签页
- 在 Program arguments 输入框里,输入空格分隔的整数,比如
99 37 17 5 12 33 - 点击右下角的 Run 按钮,就能看到控制台输出排序前后的结果啦!
额外:如果想在Mac终端(命令行)运行
要是之后你想试试纯命令行操作,也很简单:
- 打开Mac的「终端」应用(在Launchpad的「其他」文件夹里)
- 用
cd命令切换到你的Java文件所在的文件夹,比如cd /Users/你的用户名/eclipse-workspace/你的项目名/src - 编译代码:
javac InsertionSortDriver.java(如果插入排序是单独的类,也要一起编译,比如javac InsertionSort.java InsertionSortDriver.java) - 运行程序:
java InsertionSortDriver 99 37 17 5 12 33,回车就能看到结果啦!
内容的提问来源于stack exchange,提问作者user9762983
相关产品推荐
相关产品推荐

