我有一个字符串,我必须根据预设长度数组进行划分,然后子字符串将进入动态数组。
示例:
S = 101010101011001100
通过1:数组=(" 10101010"," 11001100")
通过2:数组=(" 1010"," 1010"," 1100"," 1100")
通过3:数组=(" 10"," 10"," 10"," 10"," 11& #34;," 00"," 11"," 00") 等等....
我尝试过split(),vector,substring等。它没有给我所需的结果。
由于数组的大小也随着每次传递而增加,子串也逐渐增加,因此我无法理解代码中的实际除法。如果有人可以帮助我理解如何去做,那将非常有帮助。提前谢谢。
答案 0 :(得分:0)
你可以做到
public static void divideAndPrint(String... strs) {
String[] array = new String[strs.length*2];
for(int i = 0; i < strs.length; i++) {
array[i*2] = strs[i].substring(0,strs[i].length()/2);
array[i*2+1] = strs[i].substring(strs[i].length()/2);
}
System.out.println(Arrays.toString(array));
if (array[0].length() > 1)
divideAndPrint(array);
}
divideAndPrint("1010101010110011");
打印
[10101010, 10110011]
[1010, 1010, 1011, 0011]
[10, 10, 10, 10, 10, 11, 00, 11]
[1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 1, 0, 0, 1, 1]
答案 1 :(得分:0)
要做到这一点,首先要把你的输入&#39; S&#39;到单个元素数组:
Input Array = { "101010101011001100" }
现在你要做的是循环输入长度数组。然后检查数组中的第一个元素是否短于当前长度值,然后执行以下操作:
通过对每次迭代执行此操作,您应该得到您正在寻找的结果。
如果输入字符串长度与输入数组长度不完全匹配,或者输入数组长度不按递减顺序排列,则可能效果不佳。如果重要,请留意这些边缘情况。
希望这有帮助!