我尝试了很多不同解决方案的解释
How to add space on both sides of a string in Java
Regex add space between all punctuation
Add space after capital letter
以及关于括号的其他内容(以及更多)
我有一个字符串,我只想要这个:hi()
成为这个:hi()
到目前为止我尝试过:
if (phrase.matches("^.*[(].*$")){
phrase.replaceAll("\\(", " \\( ");
}
if工作正常,但replaceAll没有做任何事情。
我在线阅读我可能需要将以前的值放在replaceAll中,所以我尝试了以下
if (phrase.matches("^.*[(].*$")){
phrase.replaceAll("(.*)\\(", " \\( ");
}
以及
if (phrase.matches("^.*[(].*$")){
phrase.replaceAll("(.*)\\(", "(.*) \\( ");
}
这个
if (phrase.matches("^.*[(].*$")){
phrase.replaceAll("(.*)\\((.*)", "(.*) \\( (.*)");
}
此时我觉得我只是在尝试随机的东西而且我在这里遗漏了一些小事。
答案 0 :(得分:1)
replaceAll不会改变字符串。尝试
if (phrase.matches("^.*[(].*$")){
System.out.println(phrase.replaceAll("\\(", " \\( "));
// => f ( )
}
或
if (phrase.matches("^.*[(].*$")){
phrase = phrase.replaceAll("\\(", " \\( "));
}
答案 1 :(得分:0)
在java中,字符串是不可变的。因此,您可能希望将replaceAll结果分配给变量。
phrase = phrase.replaceAll("\\(", " (");
此外,您的if条件可以省略,因为replaceAll
只会在找到匹配项时替换字符串。