因此,对于一个赋值,我必须编写一个方法,它将采用两个数组并交错它们。我选择将这些数组转换为字符串,获取每个字符串的子字符串并将它们添加到stringbuilder中。现在我应该有一个充满两个数组的整数的字符串构建器,但是教师希望我们创建的方法必须返回一个整数数组。如何将此stringbuilder转换为int数组?
到目前为止,这是我的代码:
public static int[] interleaveArrays(int[] array1, int[] array2, int stride, int maxElements){
if (stride <= 0){
return null;
}
if (maxElements <= 0){
return null;
}
String arrayA = array1.toString();
String arrayB = array2.toString();
StringBuilder sb = new StringBuilder(array1.length + array2.length);
boolean done = false;
boolean end = false;
int i = 0;
int j = 0;
while (done = false){//create a substring of the first array & append to stringbuilder
String newArray1 = arrayA.substring(i, i + (stride - 1));
sb.append(newArray1);
if (i > arrayA.length()){
done = true;
}
while (end = false){//create a substring of the second array & append to stringbuilder
String newArray2 = arrayB.substring(j, (j + stride - 1));
sb.append(newArray2);
if (j > arrayB.length()){
end = true;
}
}
if (sb.length() >= maxElements){
done = true;
}
}
}
(旁注:
stride 是每个阵列一次应采取的整数数量。 [例如。如果您的步幅为2且数组 {1,3,7,2} 且 {5,2,9,6} ,则返回的数组应为{ 1,3, 5,2, 7,2, 9,6 }]
maxElements 是返回数组中允许的最大整数数)