java - 将一个字符串分成四个一组

标签 java algorithm substring

输入是;

"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/

相关文章:

ios - 如何使用substringToIndex从NSString捕获单个字符

java - 如何在不创建 AWS 资源的情况下验证 Java 8 中的 AWS cron 表达式?

algorithm - LibSVM 和 LibLinear 有什么区别

Java 二维数组,查找包含的元素

c++ - 带最低频率字符的字符串查找算法

c++ - Arduino 子串不起作用

java - 使用 Kruskal 算法计算最小生成树时的错误答案

java - 删除其中一项后,如何立即在 listView 中更新每项显示的总价?

java - 从文件输入邻接矩阵

mysql - 如何为 MySQL 中的每一行获取可变大小的子字符串?