Java读取空格分隔的数值并输出为数值类型的数组

数据格式的读取和转换是数据处理中经常遇到的问题。这里分享小编近期遇到的问题。

输入文件是以空格分隔的数值,保存于test.txt的文本文件中,内容如下:

6 42 969 652 7910 1359 5456 502 5928 1864 2215 4650 7890 7224 6298 939 5011 3202 8383 210 1435 1466 1852 8394 554 3648 4001 4469 959 46 7982 6322 2150 8051 627 2426 6342 841 1419 4807 2860 4166 5462 5828 1164 3573 6673 570 7559 6273 4959 3571 6886 1213 2760 1909 2000 5286 8421 313 3022 8003 3400 7506 6364 5294 3035 569 1337 6837 1217 7527 5377 5688 2085 3299 6672 535 6716 5607 7440 5785 258 6061 2444 5931 741 8310 5749 8352 7782 5077 6820 228 8171 4870 7336 2942 5602 5361 7424 8566 2093 2380 2323 3833 7153 7228 3583 6747 5557 2269 7650 2188 3004 1397 3779 5847 2079 4245 6265 1608 7594 1500 4102 780 4192 2398 2146 5579 8018 5946 3345 4414 1434 268 5171 8022 6504 7883 3728 8272 4818 1826 1002 351 6059 4731 4804 8109 816 5076 5929 3385 2816 3513 5356 4479 3480 3932 2439 4231 2142 2259 806 6946 5590 8300 632 2431 7538

需要我们将其转化为数值类型的数组进行后继数学计算。


解决思路:

  1. 利用BufferedReader读取输入文件。
  2. 利用reader.readline逐行读取内容并保存为字符串类型
  3. 利用split方法按照空格(\s)分隔文本并保存到字符串类型数组
  4. 字符串类型数组转化为整数型数组
  5. Arrays.toString输出数组内容。

下面的示例演示了读取及转化:

public class test {
    public static void main(String[] args) {
        System.out.println(Arrays.toString(BufferedReader("C:/Users/Administrator/Documents/Downloads/test.txt")));
    }

    public static int[] BufferedReader(String path) {
        BufferedReader reader;
        String[] perm = new String[1];
        try {
            reader = new BufferedReader(new FileReader(path));
            String line = reader.readLine();
            perm = line.split("\\s+");
            reader.close();
        } catch (IOException e) {
            e.printStackTrace();
        }
        int[] permutationπ = new int[perm.length];
        for (int i = 0; i < perm.length; i++) {
            int number = Integer.parseInt(perm[i]);
            permutationπ[i] = number;
        }
        return permutationπ;
    }
}

最后sout输出的结果应当是以逗号分隔的数组形式,数组的本质是整数型,可以进一步进行后继数学处理。

你可能感兴趣的:(java,开发语言,排序算法)