将两个一维字符串数组合并为一个带分隔符的数组

Posted

技术标签:

【中文标题】将两个一维字符串数组合并为一个带分隔符的数组【英文标题】:Merge two one dimensional String arrays to a single array with delimiter 【发布时间】:2021-05-12 01:56:33 【问题描述】:

我有两个数组:

a = ["a","b","c"]

b = ["d","e","f"]

如何将它们合并到一个数组中,如下所示:

c = ["a=d", "b=e", "c=f"]

使用等号 (=) 作为合并字符串之间的分隔符?

【问题讨论】:

这个问题正在meta讨论。 重复错误,因为ArrayListarray 不同 技术是一样的,iterate,concat,add。 不。 ArrayList 有内置的 .addAll 方法可以这样做,不需要迭代。 addAll 不相关,因为您需要添加自定义分隔符。 Aniway 这个问题不够具体:我们要如何处理数组的大小差异? Not using for loop,我们是否也排除了 while 循环?转到?为什么我们首先要排除类似的 for 循环?此外,所选答案不符合“没有 for 循环”的标准。如果这是一个家庭作业问题,那么课程的主题是什么?流? 【参考方案1】:

你可以在循环的帮助下做到这一点,例如

import java.util.Arrays;

public class Main 
    public static void main(String[] args) 
        String[] a =  "a", "b", "c" ;
        String[] b =  "d", "e", "f" ;
        String[] result = new String[a.length];
        for (int i = 0; i < Math.min(a.length, b.length); i++) 
            result[i] = a[i] + "=" + b[i];
        

        System.out.println(Arrays.toString(result));
    

输出:

[a=d, b=e, c=f]

通过this tutorial from Oracle了解更多关于循环的信息。

使用IntStream

import java.util.Arrays;
import java.util.stream.IntStream;

public class Main 
    public static void main(String[] args) 
        String[] a =  "a", "b", "c" ;
        String[] b =  "d", "e", "f" ;
        String[] result = IntStream
                            .range(0, Math.min(a.length, b.length))
                            .mapToObj(i -> a[i] + "=" + b[i])
                            .toArray(String[]::new);
        
        System.out.println(Arrays.toString(result));
    

【讨论】:

以上是关于将两个一维字符串数组合并为一个带分隔符的数组的主要内容,如果未能解决你的问题,请参考以下文章

两个一维数组怎么合并成一个二维数组

将字符串数组合并为逗号分隔的字符串(foreach)

python split函数

如何在Java中将二维布尔数组转换为一维字节数组?

将两个列数组合并为配置单元中的 1 个数组列

php中数组和字符串的相互转换