-1

我需要编写一个方法,该方法将采用类似字符串"1+2+3*4"并在每个字符之间添加空格,如果空格太多则删除空格。传入的字符串可能有空格/没有空格,我需要确保每个字符之间只有一个空格。

如果有人可以提供实现这一目标的最简单和最简单的方法,我将不胜感激。

4

2 回答 2

1

此解决方案标准化每个运算符周围的空白。

return expr.replaceAll("(?<=\\d)\\s*([-+/*])\\s*(?=\\d)", " $1 ");
于 2012-05-15T01:35:19.000 回答
0

通常可理解的代码更好。

一种更容易理解的蛮力方法,可能更慢,没有棘手的正则表达式,使用 String.replace。

  1. 删除每个空格。例如String.replace(" ", "");
  2. 然后用带空格的运算符替换每个运算符,例如 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;
 }
于 2012-05-15T23:26:27.447 回答