我需要编写一个方法,该方法将采用类似字符串"1+2+3*4"
并在每个字符之间添加空格,如果空格太多则删除空格。传入的字符串可能有空格/没有空格,我需要确保每个字符之间只有一个空格。
如果有人可以提供实现这一目标的最简单和最简单的方法,我将不胜感激。
此解决方案标准化每个运算符周围的空白。
return expr.replaceAll("(?<=\\d)\\s*([-+/*])\\s*(?=\\d)", " $1 ");
通常可理解的代码更好。
一种更容易理解的蛮力方法,可能更慢,没有棘手的正则表达式,使用 String.replace。
String.replace(" ", "");
String.replace("+", " + ");
例如完整代码(警告 - 未经测试!)
static final String[] ALL_MY_OPS = { "+", "-", "*", "//"};
public static String cleanup(String in) {
String result = in.replace(" ", ""); // remove all spaces
for (String op : ALL_MY_OPS) {
String replacement = " " + op + " ";
result = result.replace(op, replacement);
}
return result;
}