【问题标题】:Simple Spacing In Output输出中的简单间距
【发布时间】:2012-12-13 07:05:36
【问题描述】:

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

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

【问题讨论】:

  • 你已经尝试过什么?你有什么问题?你使用什么编程语言?为什么需要这样做?
  • 哦,对不起,这是我第一次来这里。忘了包括那个。我正在用java编程,我尝试使用for循环遍历字符串并找到两个并排的字符,如果它们为空,我会在它们之间添加一个空格。我需要这样做,因为它是一个更大项目的一部分,如果验证用户的输入,这部分是因为我的程序的其余部分要求公式采用间隔形式。
  • 如上所述,它是我正在制作的一个更大的计算器类型程序的一部分,但是是的,该项目将在学校完成。

标签: java string spacing


【解决方案1】:

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

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

【讨论】:

  • 这很好,但我真的需要更简单的东西。我希望能够了解正在发生的事情。
【解决方案2】:

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

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

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2014-06-19
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多