我有一个示例输入,可以是任意长度,并希望每4个字符添加一个空格。
例如input = xxxxxxxxxxxx
结果我期望:xxxx xxxx xxxx
我查看了replaceAll()
方法,但想知道如何创建一个匹配,返回第4,第8,第12等字符索引,以便我可以这样做:
input.replaceAll("([\\S\\s)]{4})\\G", " " + input.charAt(index - 1))
其中index以某种方式被修改以获得我的正则表达式找到第4个字符的适当索引。
答案 0 :(得分:2)
您可以尝试使用replaceAll(".{1,4}+(?!$)", "$0 ")
.{1,4}+
将匹配任意1-4个字符(+将使其具有所有权) (?!$)
不在字符串结尾
$0 "
会将其替换为第0组(当前匹配)加空格
答案 1 :(得分:2)
你可以尝试使用正则表达式:
StringBuilder str = new StringBuilder("xxxxxxxxxxxx");
int i = str.length() - 4;
while (i > 0)
{
str.insert(i, " ");
i = i - 4;
}
System.out.println(str.toString());
使用正则表达式:
String myString = "xxxxxxxxxxxx";
String str = myString.replaceAll("(.{4})(?!$)", "$0 ");
return str;
答案 2 :(得分:0)
使用分组; $ 1(及以上)将替换为matcher.getGroup(1)
。
答案 3 :(得分:0)
如果有一个
,则不会添加空格String s = "xxxxxxxx xxxxx x xx x";
System.out.println(s.replaceAll("\\w{4}(?!\\s)", "$0 " ));
Outmput:xxxx xxxx xxxx x x xx x