【发布时间】:2020-10-29 16:16:22
【问题描述】:
我正在尝试交换字符串A * (B + C) / D 中的括号,但交换它们会导致A * \)B + C( / D 而不是A * )B + C( / D。
public class InfixToPrefixExpression {
private String swapStrings(String expression, String one, String two){
return Arrays.stream(expression.split(one, -1))
.map(s -> s.replaceAll(two, one))
.collect(Collectors.joining(two));
}
public static void main(String[] args) {
String expression = "A * (B + C) / D";
String result = new InfixToPrefixExpression().swapStrings(expression,
"\\(","\\)");
System.out.println(result);
}
}
如何删除结果字符串中出现的多余反斜杠?我也尝试了以下方法,但 String.join() 方法在结果中添加了额外的斜杠。
// String[] split = expression.split(one, -1);
// for (int i = 0; i < split.length; i++) {
// split[i] = split[i].replaceAll(two, one);
// }
// String result = String.join(two, split);
【问题讨论】: