Java语言怎么进行数组折叠,将第一个数组的结尾和第二个数组的开头串联,将第三个数组的开头和第二个数组的结尾串联

Java语言怎么进行数组折叠,将第一个数组的结尾和第二个数组的开头串联,将第三个数组的开头和第二个数组的结尾串联,以此类推呢

依旧是两种方案, 效果如图:

img


代码如下:
方案一:

public class ArrayFoldingExample {
    public static void main(String[] args) {
        int[] arr1 = {1, 2, 3};
        int[] arr2 = {4, 5, 6};
        int[] arr3 = {7, 8, 9};

        int[] result = new int[arr1.length + arr2.length + arr3.length];

        // 将第一个数组的元素拷贝到结果数组
        for (int i = 0; i < arr1.length; i++) {
            result[i] = arr1[i];
        }

        // 将第二个数组的元素拷贝到结果数组
        for (int i = 0; i < arr2.length; i++) {
            result[arr1.length + i] = arr2[i];
        }

        // 将第三个数组的元素拷贝到结果数组
        for (int i = 0; i < arr3.length; i++) {
            result[arr1.length + arr2.length + i] = arr3[i];
        }

        // 输出结果
        for (int num : result) {
            System.out.print(num + " ");
        }
    }
}


方案二:



public class ArrayFoldingExample {
    public static void main(String[] args) {
        int[] arr1 = {1, 2, 3};
        int[] arr2 = {4, 5, 6};
        int[] arr3 = {7, 8, 9};

        int[] result = new int[arr1.length + arr2.length + arr3.length];

        // 使用System.arraycopy()方法进行数组拷贝
        System.arraycopy(arr1, 0, result, 0, arr1.length);
        System.arraycopy(arr2, 0, result, arr1.length, arr2.length);
        System.arraycopy(arr3, 0, result, arr1.length + arr2.length, arr3.length);

        // 输出结果
        for (int num : result) {
            System.out.print(num + " ");
        }
    }
}
不知道你这个问题是否已经解决, 如果还没有解决的话:
  • 这个问题的回答你可以参考下: https://ask.csdn.net/questions/1077408
  • 我还给你找了一篇非常好的博客,你可以看看是否有帮助,链接:java随机产生二维数组,并把二维数组转化为一维数组,重新排序,再转化为二维数组
  • 同时,你还可以查看手册:java-二维图形 - 如何在应用程序中显示和打印二维图形。-Java 2D中的高级主题解释了如何执行变换、剪辑绘图区域、合成重叠的图形、指定渲染首选项以及控制渲染质量。-变换形状、文本和图像 中的内容
  • 除此之外, 这篇博客: Java 从键盘输入一个字符串,统计某个字符的个数中的 从键盘输入一个字符串,统计某个字符的个数 部分也许能够解决你的问题, 你可以仔细阅读以下内容或者直接跳转源博客中阅读:
    例如,从键盘输入“I am a student”,统计a出现的次数
    

    字符串转字符数组 字符串.toCharArray();
    Scanner scanner = new Scanner(System.in);
    String str = scanner.nextLine(); 获字符串,回车作为分隔符

    import java.util.Scanner;
    
    public class TestDemo{
        public static int getCharCountOfString(String str, char c) {
            //字符串转字符数组  字符串.toCharArray();
            char[] arr = str.toCharArray();
            int count = 0;
            for (int i = 0; i < arr.length; i++) {
                if (arr[i] == c){
                    count++;
                }
            }
            return count;
        }
    
        public static void main(String[] args) {
            Scanner scanner = new Scanner(System.in);
            String str = scanner.nextLine();
            int count = getCharCountOfString(str, 'a');
            System.out.println(count);
        }
    }
    

    运行结果:
    在这里插入图片描述

  • 您还可以看一下 邱石老师的java后台+微信小程序 实现完整的点餐系统课程中的 配置服务器安全组,让手机和小程序都能访问到我们的服务器小节, 巩固相关知识点
  • 以下回答来自chatgpt:

    Java语言中,我们可以使用以下方法实现数组的折叠和串联操作:

    1. 数组折叠操作:
    2. 首先,创建一个新的数组,长度为原始数组的一半。如果原始数组的长度为奇数,则新数组的长度为原始数组长度除以2加1。
    3. 使用一个循环遍历原始数组的元素,每次取两个元素进行折叠操作,将折叠后的结果存入新数组中。
    4. 最后,返回新数组作为结果。

    代码示例:

    public class ArrayUtils {
        public static int[] foldArray(int[] array) {
            int length = array.length;
            int[] result = new int[length / 2 + length % 2];
            for (int i = 0; i < length / 2; i++) {
                result[i] = array[i] + array[length - 1 - i];
            }
            if (length % 2 == 1) {
                result[length / 2] = array[length / 2];
            }
            return result;
        }
    }
    
    1. 数组串联操作:
    2. 首先,创建一个新的数组,长度为所有原始数组长度之和。
    3. 使用一个循环遍历所有原始数组,每次将当前数组的所有元素添加到新数组的末尾。
    4. 最后,返回新数组作为结果。

    代码示例:

    public class ArrayUtils {
        public static int[] concatenateArrays(int[]... arrays) {
            int totalLength = 0;
            for (int[] array : arrays) {
                totalLength += array.length;
            }
            int[] result = new int[totalLength];
            int currentIndex = 0;
            for (int[] array : arrays) {
                for (int element : array) {
                    result[currentIndex] = element;
                    currentIndex++;
                }
            }
            return result;
        }
    }
    

    使用上述代码示例,可以实现数组的折叠和串联操作。可以根据实际需求修改代码,例如修改参数类型为泛型,使其适用于不同类型的数组等。


如果你已经解决了该问题, 非常希望你能够分享一下解决方案, 写成博客, 将相关链接放在评论区, 以帮助更多的人 ^-^