java - 在java字符串中的运算符前后添加空格
问题描述
在过去的几个小时里,我一直在尝试在字符串中的运算符两侧放置空格。字符串看起来像这样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);
有没有办法可以将这四个正则表达式压缩成一个正则表达式?我可以在一个正则表达式中包含所有字符并在替换文本中使用它的结果吗?
解决方案
像这样试试。它的工作原理如下:
[-*/+]
匹配括号之间的任何单个字符。$0
返回匹配的字符,因此该字符被空格包围的相同字符替换。
String expression = "65+4*5/6";
expression = expression.replaceAll("[-*/+]", " $0 ");
System.out.println(expression);
印刷
65 + 4 * 5 / 6
推荐阅读
- javascript - 使用 TypeScript 推断通用子 React 组件的 prop 类型
- python - Numpy 数组推导,哪里有问题
- c++ - 为什么在使用基于 boost 的库时我生成的预编译文件如此之大?
- html - R:如何使用 rvest 或任何 R 包从标签的属性中提取某些元素?
- typescript - RxJS 运算符用于使可观察的等待来自另一个观察者的值?
- docker - Drools Workbench docker容器:无法访问已部署的服务器
- python - pandas 中数据存储/加载的方向
- amazon-web-services - Terraform 添加 aws_api_gateway_integration 响应 json
- angular - ng s 后的 Angular 未处理异常
- javascript - 如何统一 Kotlin 和 Long.js 的划分结果