Java 在符号(!?)前放置空格

Java 在符号(!?)前放置空格,java,regex,replace,Java,Regex,Replace,我做了一个小程序,在这些符号前加了一个空格?。我使用正则表达式,但我认为我的正则表达式不起作用。 我的代码 如果你真的只是想找到所有的,如果有人能告诉我如何正确地执行正则表达式或?,然后使用内部字符串执行while循环。indexOf(…)检查。然后在找到每个索引时,将最后一个位置的子字符串添加到字符前面的StringBuilder Regex是一个功能强大的工具,但在这种情况下,它不会给您带来太多好处。如果您真的只是想找到所有的或?,然后使用内部字符串执行while循环。indexOf(…)检

我做了一个小程序,在这些符号前加了一个空格?。我使用正则表达式,但我认为我的正则表达式不起作用。 我的代码


如果你真的只是想找到所有的
,如果有人能告诉我如何正确地执行正则表达式
,然后使用内部
字符串执行while循环。indexOf(…)
检查。然后在找到每个索引时,将最后一个位置的子字符串添加到字符前面的
StringBuilder


Regex是一个功能强大的工具,但在这种情况下,它不会给您带来太多好处。

如果您真的只是想找到所有的
,然后使用内部
字符串执行while循环。indexOf(…)
检查。然后在找到每个索引时,将最后一个位置的子字符串添加到字符前面的
StringBuilder

line=line.replaceAll("(.)([!])", "$1 $2");

Regex是一个功能强大的工具,但在这种情况下,它不会给您带来太多好处。

如果您想在
之前添加空间,请使用前瞻

line=line.replaceAll("(.)([!])", "$1 $2");
line = line.replaceAll("(?=[?!])", " ");

如果您想在
之前添加空格,请使用先行

line = line.replaceAll("(?=[?!])", " ");
弦是这样的

不会更改
字符串的原始值,但会返回带有替换字符的新字符串。如果要用
replaceAll
的结果替换
行中的值,请使用

line = line.replaceAll("(.)([!])", "$1 $2");
如果您想在任何
之前添加空格,也可以这样做
那么您还应该在正则表达式中包含
,所以可以尝试使用

line = line.replaceAll("([!?])", " $1");
弦是这样的

不会更改
字符串的原始值,但会返回带有替换字符的新字符串。如果要用
replaceAll
的结果替换
行中的值,请使用

line = line.replaceAll("(.)([!])", "$1 $2");
如果您想在任何
之前添加空格,也可以这样做
那么您还应该在正则表达式中包含
,所以可以尝试使用

line = line.replaceAll("([!?])", " $1");

我过去总是犯那个错误呵呵。我过去总是犯那个错误呵呵。