java - 如何通过Unix输入重定向将文件输入到Java程序中作为数组?

标签 java arrays unix input

我是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/

相关文章:

linux - bzip 命令不适用于 "tee -a"

java - 从另一个类文件访问方法?

java - 如何从集合中获取 100 个对象?

bash - 如何将由不同分隔符分隔的两个不同列提取到同一行中

c# - 数组排序效率...初学者需要指点

javascript - 从Javascript中的对象数组中删除所选项目

shell - Unix 中的自定义排序

java - 校验和一次正确计算,然后在Java中使用CRC32正确计算一次

java如何使用socket获得更快的速度

java - Validator 类中的依赖关系未在单元测试中初始化