多个数组内容拼接,每个数组分别根据索引位置,拼接内容
1,通过Hutool.ArrayUtil.zip方法进行处理(缺点,只能保留最短的数组内容)
public class Test {
public static void main(String[] args) {
String chinese = "张三;李四;王五";
String english = "zhangsan;lisi";
String age = "11;";
String[] a1 = chinese.split(";");
String[] a2 = english.split(";");
String[] a3 = age.split(";");
Map<String, String> zip = ArrayUtil.zip(a1, a2);
System.out.println("zip = " + zip);
}
}
结果
zip = {李四=lisi, 张三=zhangsan}
2,程序逻辑实现(短数组通过填充,解决数组越界)
public class Test {
public static void main(String[] args) {
String chinese = "张三;李四;王五";
String english = "zhangsan;lisi";
String age = "11;";
String[] a1 = chinese.split(";");
String[] a2 = english.split(";");
String[] a3 = age.split(";");
int[] lengthArr = {a1.length, a2.length, a3.length};
int max = ArrayUtil.max(lengthArr);
String[] t1 = transfer(max, a1);
String[] t2 = transfer(max, a2);
String[] t3 = transfer(max, a3);
String[] todo = new String[max];
for (int i = 0; i < max; i++) {
todo[i] = t1[i] + " " + t2[i] + " " + t3[i];
}
System.out.println(Arrays.asList(todo));
}
private static String[] transfer(int max, String[] a1) {
String[] m1 = new String[max];
for (int i = 0; i < m1.length; i++) {
if (a1.length - 1 >= i) {
m1[i] = a1[i];
} else {
m1[i] = "";
}
}
return m1;
}
}
结果
[张三 zhangsan 11, 李四 lisi , 王五 ]
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 被坑几百块钱后,我竟然真的恢复了删除的微信聊天记录!
· 没有Manus邀请码?试试免邀请码的MGX或者开源的OpenManus吧
· 【自荐】一款简洁、开源的在线白板工具 Drawnix
· 园子的第一款AI主题卫衣上架——"HELLO! HOW CAN I ASSIST YOU TODAY
· Docker 太简单,K8s 太复杂?w7panel 让容器管理更轻松!