在每个给定字符后插入空格-java

在每个给定字符后插入空格-java,java,regex,Java,Regex,我需要在字符串中的每个给定字符后插入一个空格 例如“abc.def…” 需要变成“abc.def…” 在这种情况下,给定的字符就是点 我在谷歌上的搜索没有找到这个问题的答案 我真的应该去学习一些严肃的正则表达式知识 编辑:---------------------------------------------------------- String test = "0:;1:;"; test.replaceAll( "\\:", ": " ); System.out.println(test)

我需要在字符串中的每个给定字符后插入一个空格

例如
“abc.def…”

需要变成“abc.def…”

在这种情况下,给定的字符就是点

我在谷歌上的搜索没有找到这个问题的答案

我真的应该去学习一些严肃的正则表达式知识

编辑:----------------------------------------------------------

String test = "0:;1:;";
test.replaceAll( "\\:", ": " );
System.out.println(test);

// output: 0:;1:;
// so didnt do anything
String test = "0:;1:;";
**test =** test.replaceAll( "\\:", ": " );
System.out.println(test);
解决方案:-------------------------------------------------------

String test = "0:;1:;";
test.replaceAll( "\\:", ": " );
System.out.println(test);

// output: 0:;1:;
// so didnt do anything
String test = "0:;1:;";
**test =** test.replaceAll( "\\:", ": " );
System.out.println(test);
您可以使用:

编辑:

编辑:

正如在其他答案中所说,
String.replace()
就是这个简单替换所需的全部内容。只有当它是正则表达式时(如您在问题中所说),才必须使用
String.replaceAll()

您可以使用replace

text = text.replace(".", ". ");

如果你想要一种简单的暴力技术。下面的代码将完成此操作

String input = "abc.def...";
StringBuilder output = new StringBuilder();
for(int i = 0; i < input.length; i++){
    char c = input.getCharAt(i);
    output.append(c);
    output.append(" ");
}
return output.toString();
String input=“abc.def…”;
StringBuilder输出=新的StringBuilder();
for(int i=0;i
您需要使用string.replace(“.”,“”)replaceAll()将正则表达式作为第一个参数。“:”在正则表达式中没有特殊意义,因此您不必逃避它。删除双反斜杠后,代码应该可以正常工作。@tangens否遗憾的是,您不必使用String.replaceAll()的结果。字符串在java中是不可变的。@tangens是的,就是说,谢谢,不,这不太符合OP的要求。他/她希望能够为任何角色这样做,而不仅仅是为dot。使用此解决方案,有些字符需要前面的反斜杠,有些则不需要。如果要使用
replaceAll
进行替换,则需要使用
Pattern.quote
,这将确定角色是否需要引用。但是对于这个特殊的问题,使用
replace
,而不是
replaceAll
@DavidWallace更容易些。你能发布一个更详细的answer@DavidWallace就目前而言,至少是这样的:“我在2570707答案下的评论告诉了你们所有你们需要知道的事情。什么不起作用?使用
replace
对我来说很好。这是最好的答案。当然,在一般情况下,它应该是
text.replace(targetCharacter,targetCharacter+)
其中
targetCharacter
是一个
字符串
,等于要查找的字符。