输入是;
"AbrAcadAbRa"
输出应该是;
["AbrA", "brAc", "rAca", "Acad", "cadA", "adAb", "dAbR", "AbRa]
到目前为止,这是我尝试过的,但没有成功;
public static void main(String[] args) {
// TODO Auto-generated method stub
String str = "AbrAcadAbRa";
int length = 4;
String subString = "";
for (int i = 0; i < length; i++) {
subString = str.substring(i, length);
System.out.println(subString);
str = str.substring(i);
}
}
它给出了错误的输出;
["AbrA", "brA", "Ac", "d"]
最佳答案
您迭代字符串的逻辑不正确,因此您当前的结果是错误的。我在下面使用的逻辑是迭代整个长度的输入字符串,减去需要多少空间以确保可以采用适当长度的子字符串。然后,在每次迭代中,打印出一个 length
子字符串。
public static void main(String args[]) {
String str = "AbrAcadAbRa";
int length = 4;
String subString = "";
// iterate over the length of the input, offset by the substring length
for (int i = 0; i < str.length()-length+1; i++) {
subString = str.substring(i, i+length);
System.out.println(subString);
// this is wrong; don't modify the original string
//str = str.substring(i);
}
}
输出:
AbrA
brAc
rAca
Acad
cadA
adAb
dAbR
AbRa
此处演示:
Rextester
关于java - 将一个字符串分成四个一组,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/43650478/