我是Java的初学者,需要一些有关此问题的帮助。首先,让我向您展示我的实际程序。
import java.util.Scanner;
import java.util.Arrays;
public class IntArraySort {
public static void main(String[] args) {
Scanner in = new Scanner(System.in);
System.out.println("Array-Size: ");
int num = in.nextInt();
int[] arr = new int[num];
for(int i = 0; i < arr.length; i++){
System.out.printf("%2d-tes element: ", i+1);
arr[i] = in.nextInt();
}
System.out.printf("%nOutput before sort: ");
System.out.println(Arrays.toString(arr));
int minIndex, tmp;
int n = arr.length;
for(int i = 00; i < n - 1; i++) {
minIndex = i;
for(int j = i + 1; j < n; j++)
if (arr[j] < arr[minIndex])
minIndex = j;
if (minIndex != i) {
tmp = arr[i];
arr[i] = arr[minIndex];
arr[minIndex] = tmp;
}
System.out.printf("%n%2d-ter Run: ", i+1);
System.out.println(Arrays.toString(arr));
}
}
}
这是一个程序,可以在通过键盘输入扫描数组的大小和数字时,从最小数到最大数对Int数组进行排序。但是我想从.dat文件扫描我的数组。我将其命名为sort.dat,它看起来像这样:
0
20
12
8
16
6
10
14
2
18
4
21
4
-1
-3
在Unix上通过输入重定向(IntArraySort.java
最佳答案
您只需要读取args.length大小的输入数据并将其存储在整数数组中,就无需进行很多更改。
例如:
ArrayList<Integer> inpudData = new ArrayList<Integer>();
if (args.length < 1) {
System.out.println("Proper Usage is: java IntArraySort < sort.dat");
System.exit(0);
} else {
for (int i = 0; i < args.length; i++)
inpudData.add(Integer.parseInt(args[i]));
}
现在,您只需要调用java IntArraySort
关于java - 如何通过Unix输入重定向将文件输入到Java程序中作为数组?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21170437/