在java字符串中的运算符前后添加空格

Ale*_*owe 0 java regex

在过去的几个小时里,我一直在尝试在字符串中的运算符两侧放置空格。字符串看起来像这样,65+4*5/6但我希望它看起来像这样65 + 4 * 5 / 6。我能做到这一点的唯一方法是编写一些看起来不太好的代码。

String expression = "65+4*5/6";

expression = expression.replaceAll("\\+", " + ");
expression = expression.replaceAll("-", " - ");
expression = expression.replaceAll("/", " / ");
expression = expression.replaceAll("\\*", " * ");
System.out.println(expression);
Run Code Online (Sandbox Code Playgroud)

有没有办法可以将这四个正则表达式压缩成一个正则表达式?我可以在一个正则表达式中包含所有字符并在替换文本中使用它的结果吗?

WJS*_*WJS 5

像这样试试。它的工作原理如下:

  • [-*/+] 匹配括号之间的任何单个字符。
  • $0 返回匹配的字符,因此该字符被空格包围的相同字符替换。
String expression = "65+4*5/6";
expression = expression.replaceAll("[-*/+]", " $0 ");
System.out.println(expression);
Run Code Online (Sandbox Code Playgroud)

印刷

65 + 4 * 5 / 6

Run Code Online (Sandbox Code Playgroud)