我需要编写一个方法,它将采用类似"1+2+3*4"
的字符串,并在每个字符之间添加空格,如果有太多则删除空格。传入的字符串可能有空格/没有空格,我需要确保每个字符之间只有一个空格。
如果有人能够提供最简单,最简单的方法来实现这一目标,我将非常感激。
答案 0 :(得分:1)
此解决方案规范化每个运算符周围的空白。
return expr.replaceAll("(?<=\\d)\\s*([-+/*])\\s*(?=\\d)", " $1 ");
答案 1 :(得分:0)
通常可以理解的代码更好。
一种更容易理解的蛮力方法,可能更慢,没有棘手的正则表达式,使用String.replace。
String.replace(" ", "");
String.replace("+", " + ");
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;
}