n个字符后的空格以及每个n-1个字符后的空格

时间:2015-08-25 13:18:52

标签: java regex

我尝试创建一个正则表达式,用于在字符串的n第一个字符之后添加一个空格,在每个n-1字符之后添加另一个空格,如下所示:

AZEOHNUEAOONA => AZEO HNU EAO ONA

MAIH31354ZEHIA212AE => MAIH 313 54Z EHI A21 2AE

有人可以帮帮我吗?我尝试在网上搜索类似的问题,但是在搜索中正确地说出它是非常困难的。

编辑:我使用java 8

2 个答案:

答案 0 :(得分:1)

尝试以下方法:)

class Sample {
    public static void main(String args[]){
        System.out.println(addSpaces("AZEOHNUEAOONA",4));
    }
    public static String addSpaces(String str,int n)
    {
        String reg = "(?<=.{" + n + "})(?=(.{"+ (n-1) + "})+$)";
        String rep = "$0 ";
        return str.replaceAll(reg,rep);
    }
}

输出:

AZEO HNU EAO ONA

答案 1 :(得分:0)

最简单的方法是仅对问题的一部分使用正则表达式。所以基本上,你通过获取第一个n字符然后在剩余字符上使用正则表达式来拆分字符串。

所以基本上就是这样:

    int n = 4;
    String str = "FOOOFOOFOOFOOFOO";
    String part1 = str.substring(0, n);
    String part2 = str.substring(n, str.length());
    System.out.println(part1 + " " + part2.replaceAll("(.{3})", "$1 ").trim());

收率:

FOOO FOO FOO FOO FOO