【问题标题】:How to sort an array on a file created with IO?如何在使用 IO 创建的文件上对数组进行排序?
【发布时间】:2015-06-16 17:59:24
【问题描述】:

问题:“(写入/读取数据)编写程序以创建名为 Excercise 12_15 的文件(如果不存在)。使用文本 I/o 将随机创建的 100 个整数写入文件中。整数在文件中由空格分隔.从文件中读回数据,按升序显示数据"

这是我尝试过的,但我不确定从这一点开始做什么或修改:

import java.util.Random;

public class SortedArrayIO {

    public static void main(String[] args) throws IOException {
        java.io.File file = new java.io.File("arrays.text");
        if (file.exists()) {
            System.out.println("File already exists");
            System.exit(1);
        }


    java.io.PrintWriter output = new java.io.PrintWriter(file);

    int[] array = new int[100];
    Random random = new Random();

    for (int i = 0; i < array.length; i++) {
        array[i] = random.nextInt(100) + 1;
    }


    Arrays.sort(array);
    output.print(Arrays.toString(array));
}
}

【问题讨论】:

  • 那么与实际结果相比,期望的结果是什么?您似乎已经对结果进行了排序-我的猜测是唯一的问题是格式……这与格式无关,甚至与您正在写入文件无关。 (您可以对控制台执行相同的操作。)提示:您不必在一个 print 语句中完成所有操作...
  • 请编辑帖子以包含问题描述。为什么需要修改?
  • 对于那些已经回应的人,我已经提出了实际问题,如果这引起了混乱。顺便说一句,乔恩,我想我知道你在说什么,但我不知道。
  • 我注意到,无论我更改什么,我总是收到一条错误消息“找不到符号 - 类 IOException”
  • @Johnny 这是编译时错误,请导入 java.io.IOException

标签: java arrays input io output


【解决方案1】:

Arrays.toString(array)", " 分隔值,并在两侧添加"[""]"

您可以使用replaceAll 删除不需要的符号:

Arrays.toString(array).replaceAll("\\[|\\]|,", "")

或者您可以创建不同的String,例如:

Arrays.stream(array).mapToObj(Integer::toString).collect(Collectors.joining(" "))

或者,您也可以一张一张打印出来:

for (int i : array) {
    output.print(i + " ");
}

【讨论】:

  • 我会试着用你给我的来修改
猜你喜欢
  • 2021-10-11
  • 2017-07-25
  • 1970-01-01
  • 2011-07-02
  • 2020-01-05
  • 1970-01-01
  • 2013-04-20
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多