输出中的简单间距

时间:2012-05-15 01:08:14

标签: java string spacing

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

如果有人能够提供最简单,最简单的方法来实现这一目标,我将非常感激。

2 个答案:

答案 0 :(得分:1)

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

return expr.replaceAll("(?<=\\d)\\s*([-+/*])\\s*(?=\\d)", " $1 ");

答案 1 :(得分:0)

通常可以理解的代码更好。

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

  1. 删除所有空间。例如String.replace(" ", "");
  2. 然后用操作符替换每个操作符,例如: String.replace("+", " + ");
  3. e.g。完整代码(警告 - 未经测试!)

     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;
     }