Java 用于在字符串的每个字符后添加空白的Regexp

Java 用于在字符串的每个字符后添加空白的Regexp,java,regex,Java,Regex,我正在寻找一种方法,将Java字符串中的每个字符替换为字符+空格(除了最后一个字符或删除末尾的空格) 这个想法来自于STACKOVERFLOWreturnstakovelow。可以使用regexp执行此操作,还是应该迭代字符串 谢谢不需要正则表达式 只需迭代字符串并使用StringBuilder: String withSpaces = addSpaces("StackOverflow"); 公共字符串addSpaces(字符串s){ StringBuilder sb=新的StringBui

我正在寻找一种方法,将Java字符串中的每个字符替换为字符+空格(除了最后一个字符或删除末尾的空格)

这个想法来自于
STACKOVERFLOW
return
stakovelow
。可以使用regexp执行此操作,还是应该迭代字符串


谢谢

不需要正则表达式

只需迭代字符串并使用StringBuilder:

String withSpaces = addSpaces("StackOverflow");

公共字符串addSpaces(字符串s){
StringBuilder sb=新的StringBuilder();
对于(int i=0;i
不需要正则表达式

只需迭代字符串并使用StringBuilder:

String withSpaces = addSpaces("StackOverflow");

公共字符串addSpaces(字符串s){
StringBuilder sb=新的StringBuilder();
对于(int i=0;i
随大流

str.replaceAll("(?<!^)(?!$)", " ");
str.replaceAll(“(?Go with

str.replaceAll("(?<!^)(?!$)", " ");

str.replaceAll(“(?这里不需要正则表达式。只需在字符串中的字符上循环。两种方法都可以,但没有理由产生使用正则表达式所涉及的额外开销。字符串中已有的空白怎么办?在那里再添加一个?有什么理由想用正则表达式代替迭代吗?只是想知道。jlordo:strinKLee:我只是在寻找一种更快的方法,如果你想要速度,就不要使用正则表达式和迭代。如果你不在乎速度,你想要一行,就使用正则表达式。这里不需要正则表达式。只需循环字符串中的字符。这两种方法都可以,但没有理由产生额外的开销使用正则表达式没有问题。字符串中已经有空格了吗?在那里再添加一个?有没有理由想使用正则表达式而不是迭代?只是想知道。jlordo:字符串没有空格。KLee:我只是在寻找更快的方法如果你想加快速度,请避免使用正则表达式并进行迭代。如果你不想这样做的话考虑到速度,如果您想要一行程序,请使用正则表达式。我会在末尾调用replaceAll(“,$”,”),以删除尾随space@chaitanya10-在此上下文中使用子字符串更好。我会在末尾调用replaceAll(“,$”,“”)。若要删除尾部space@chaitanya10-在这种情况下,使用子字符串更好。
str.replaceAll("(?<=.)(?!$)", " ");
str.replaceAll("(?<=\S)(?!$)", " ");
str.replaceAll("(?<=\S)(?!\s)(?!$)", " ");