题目
现有两个数组 A{“a1”,“a2”,“a3”…}、B{“b1”,“b2”,“b3”…};
按照a1,a2,b1,a3,a4,b2…的序列,返回一个给定的长度n的数组
public static void main(String[] args) {
String[] str1 = {"a1", "a2", "a3", "a4", "a5", "a6", "a7", "a8", "a9", "a10"};
String[] str2 = {"b1", "b2", "b3", "b4", "b5", "b6", "b7", "b8", "b9", "b10"};
String[] strings = backArray(str1, str2, 13);
System.out.println("strings = " + strings);
}
private static String[] backArray(String[] str1, String[] str2, int n) {
int a = 1;
int b = 0;
List<String> list = CollUtil.newArrayList();
//根据str1的长度,判定这个长度里面有多少个奇数
for (int i = 0; i < str1.length; i++) {
if (i % 2 != 0) {
b = b + 1;
}
}
//所给定的n一定是小于等于str1的长度与奇数个数之和
if (n <= str1.length + b) {
//集合的长度一定与n相等
for (int i = 0; list.size() < n; i++) {
//无论i是奇数还是偶数,str1的元素都得加入集合
list.add(str1[i]);
if (i % 2 != 0 && list.size() < n) {
list.add(str2[i - a]);
a++;
}
}
}else {
System.out.println("给定的长度n不合法,请重新输入!");
}
String[] strings = ArrayUtil.toArray(list, String.class);
return strings;
}
}
代码中的CollUtil、ArrayUtil都是Hutool工具类,除此之外还有很多常用的工具类,分别我在Hutool工具集之DateUtil(日期时间工具)详解使用、Hutool工具集之常用工具类详解使用(一)、Hutool工具集之常用工具类详解使用(二)中都有提到,并且我也会持续更新Hutool的其他工具类,希望关注并提出宝贵意见!
转载:https://blog.csdn.net/Eric__JY/article/details/102465732
查看评论