使用正则表达式每隔(x)个JAVA插入一个空格

使用正则表达式每隔(x)个JAVA插入一个空格,java,regex,Java,Regex,我想知道这在正则表达式中是否可行,或者我是否应该将其拆分为一个字符数组并进行循环 在输入的字符串中每隔(x)个字符(由用户指定)插入一个空格 例如:他们有字符串“oogaboga” 他们首先希望每2个字符插入一个空格,他们会得到“oo ga bo og a” 然后他们重新启动程序,希望每4个字符有一个空格,他们会得到“ooga boog a” (我已经有了代码,但无法在正则表达式中输入int,具体怎么做?) 谢谢你的帮助。关于这一点,我已经搜索了很长时间。如果您使用的是regex,则需要在rep

我想知道这在正则表达式中是否可行,或者我是否应该将其拆分为一个字符数组并进行循环

在输入的字符串中每隔(x)个字符(由用户指定)插入一个空格

例如:他们有字符串“oogaboga”

他们首先希望每2个字符插入一个空格,他们会得到“oo ga bo og a”

然后他们重新启动程序,希望每4个字符有一个空格,他们会得到“ooga boog a”

(我已经有了代码,但无法在正则表达式中输入int,具体怎么做?)


谢谢你的帮助。关于这一点,我已经搜索了很长时间。

如果您使用的是regex,则需要在replace部分使用一个backreference,并使用如下正则表达式:

.{n}
其中
n
为字符数,替换为
$0
$0
为反向参考,将引用匹配部分)


完美!非常感谢你。我试着插入一个int(包含在val中),而不是像您这样键入+val+的字符串。我假设它的工作原理是,正则表达式接受一个字符串,然后将该数字转换为int,这样它就可以处理它了?另外,很抱歉这里的解释不好,我是编程新手。@togglism您需要向函数传递一个正则表达式字符串,因此int实际上需要更多的工作(将其转换为字符串以便可以附加到另一个字符串)。
String in = "oogabooga";
String val = "2";   // use 4 here to insert spaces every 4 characters
String result = in.replaceAll("(.{" + val + "})", "$1 ").trim();
System.out.println(result);