Java实现:如何将两个字符串数组元素两两组合后存入数组返回?
解决字符串数组两两组合并返回数组的问题
原代码存在的问题
- 返回类型不匹配:方法声明返回
String[],但最终返回的是单个字符串str2,编译直接报错。 - 未正确填充结果数组:嵌套循环中仅用
str2临时存储组合后的字符串,每次循环会覆盖前一次的值,且从未将结果存入初始化好的str1数组。 - 缺少数组位置跟踪变量:没有变量记录结果数组中当前要写入的位置,无法依次填充所有组合结果。
修正后的代码
public class Solution { public static String[] combineAllStrings(String[] s1, String[] s2) { int resultLength = s1.length * s2.length; String[] result = new String[resultLength]; int index = 0; for(int i = 0; i < s1.length; i++) { for(int j = 0; j < s2.length; j++) { result[index] = s1[i] + s2[j]; index++; } } return result; } }
关键修正点说明
- 数组索引跟踪:新增
index变量,每次完成一组字符串组合后,将结果存入result[index],随后index自增,确保每个组合结果都能依次放入数组的对应位置。 - 返回正确类型:最终返回初始化好的
result数组,符合方法的返回类型要求。 - 逻辑保留:保留了原代码中通过嵌套循环遍历两个数组生成组合的核心逻辑,这部分是正确的。
示例验证
输入:
String[] arr1 = {"a", "c", "e"}; String[] arr2 = {"b", "d", "f"};
调用combineAllStrings(arr1, arr2)后,返回的结果数组为:["ab", "ad", "af", "cb", "cd", "cf", "eb", "ed", "ef"],与预期输出一致。
内容的提问来源于stack exchange,提问作者Monojyoti Goswami
相关产品推荐
相关产品推荐

