gpt4 book ai didi

java - 如何计算二维数组的偶数并将其写入文件?

转载 作者:行者123 更新时间:2023-12-02 08:49:00 25 4
gpt4 key购买 nike

我需要从二维数组中计算偶数并将它们写入文件中,我是java新手并编写了这段代码,但它不起作用,请告诉我出了什么问题以及如何修复它

 static void ex6(int[][] A) throws IOException{
FileWriter fw = new FileWriter("ParCol.txt");
int[][] posA=new int[A.length][A[0].length];
for(int i=0;i<A.length;i++) {

for(int j=0;j<A[0].length;j++) {
if(A[0][j] % 2 == 0) {
posA[i][j]=A[i][j];

}
}
}

fw.write((A.length)+" "+A[0].length+"\n");
for(int i=0;i<posA.length;i++) {
for(int j=0;j<posA[0].length;j++) {
fw.write(posA[i][j]+" ");
}
fw.write("\n");
}}

最佳答案

存在多个问题。

  1. 您假设该二维数组中的所有数组的长度都相同,如下所示。
int[][] posA=new int[A.length][A[0].length];
  • 您仅循环访问二维数组的第一个索引中找到的数组,如下所示。
  •  for(int j=0;j<A[0].length;j++) {
  • 将 FileWriter 包装在 try-with-resources 中。
  • 您需要循环遍历这个二维数组中的所有数组。您尚未指定,但我假设您希望根据现有代码将每个内容放在新行中。

        static void ex6(int[][] array) throws IOException {
    try (FileWriter fw = new FileWriter("ParCol.txt")) {
    for (int i = 0; i < array.length; i++) {
    int[] iArray = array[i];

    for (int j = 0; j < iArray.length; j++) {
    int value = iArray[j];

    if (value % 2 == 0) {
    fw.write(Integer.toString(value));
    fw.write("\n");
    }
    }
    }
    }
    }

    Java 8 解决方案

        static void j8(Path path, int[][] array) throws IOException {
    String content = Stream.of(array)
    .flatMapToInt(IntStream::of)
    .filter(value -> value % 2 == 0)
    .mapToObj(Integer::toString)
    .collect(Collectors.joining("\n"));

    Files.write(path, content.getBytes(), StandardOpenOption.CREATE_NEW, StandardOpenOption.TRUNCATE_EXISTING);
    }

    关于java - 如何计算二维数组的偶数并将其写入文件?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/60906303/

    25 4 0
    Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
    广告合作:1813099741@qq.com 6ren.com