Java 给定一个字符串(100*((2&èx2B;12)/5))/14,如何在每个运算符和数字之间添加空格?
例如,我想从这个字符串开始Java 给定一个字符串(100*((2&èx2B;12)/5))/14,如何在每个运算符和数字之间添加空格?,java,Java,例如,我想从这个字符串开始 (100*((2+12)/5))/14 对此 ( 100 * ( ( 2 + 12 ) / 5 ) ) / 14 您可以迭代所有字符,然后检查是否: 如果是最后一个角色,什么都不要做 如果当前索引字符不是数字,则在其后面添加空格 如果当前索引字符是数字,但下一个字符不是,则在其后面添加空格 publicstaticvoidmain(字符串[]args) { 字符串str=“(100*((2+12)/5))/14”; StringBuilder sb=新的Str
(100*((2+12)/5))/14
对此
( 100 * ( ( 2 + 12 ) / 5 ) ) / 14
您可以迭代所有字符,然后检查是否:
- 如果是最后一个角色,什么都不要做
- 如果当前索引字符不是数字,则在其后面添加空格
- 如果当前索引字符是数字,但下一个字符不是,则在其后面添加空格
publicstaticvoidmain(字符串[]args)
{
字符串str=“(100*((2+12)/5))/14”;
StringBuilder sb=新的StringBuilder();
对于(int i=0;i
您可以按以下方式操作
"(100*((2+12)/5))/14".replaceAll("\\D", "$0 ").replaceAll("\\d+", "$0 ").trim();
说明:
( 100 * ( ( 2 + 12 ) / 5 ) ) / 14
\D
指定将被字符加空格替换的非数字字符\d+
指定一个整数,该整数将替换为数字加空格trim()
删除尾随和前导空格( 100 * ( ( 2 + 12 ) / 5 ) ) / 14
你试过解决方法吗?就我个人而言,我会从尝试开始。这是一种鲜为人知的技术,但效果很好。是的,我尝试使用循环将任何“”替换为“”,但它在100之间添加了空格。您可以循环字符,如果两个连续字符都是数字,请继续循环,否则请插入空格。
( 100 * ( ( 2 + 12 ) / 5 ) ) / 14