gpt4 book ai didi

java - 通过添加第一个和第二个数组的元素来填充第三个数组

转载 作者:行者123 更新时间:2023-12-05 01:50:01 25 4
gpt4 key购买 nike

我想生成一个数组,其内容代表一个 Cartesian product两个给定的字符串数组。

换句话说,我需要将第一个数组 arr1 中的每个 String 与第二个数组 arr2 中的每个 String 连接起来

这是我的代码:

String[] arr1 = {"a", "b", "c"};
String[] arr2 = {"d", "e", "f"};

String[] result = new String[arr1.length * arr2.length];

for (int k = 0; k < result.length; k++) {
for (int i = 0; i <arr1.length; i++) {
for (int j = 0; j < arr2.length; j++) {
result[k] = arr1[i] + arr2[j];
}
}
}

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

当前输出:

[cf, cf, cf, cf, cf, cf, cf, cf, cf]

期望的输出:

[ad, ae, af, bd, be, bf, cd, ce, cf]

我该如何解决?

最佳答案

您不需要第一个 for 循环,它会导致结果数组中的所有值被多次覆盖。

相反,您需要在生成两个给定数组的笛卡尔积的嵌套循环 之外声明结果数组的索引kk 应该在内循环的每个迭代步骤递增。

int k = 0;
for (int i = 0; i < arr1.length; i++) {
for (int j = 0; j < arr2.length; j++) {
result[k++] = arr1[i] + arr2[j];
}
}

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

输出:

[ad, ae, af, bd, be, bf, cd, ce, cf]

关于java - 通过添加第一个和第二个数组的元素来填充第三个数组,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/73510158/

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