如何在给定字符串中的两个操作之间添加空格?
我如何给定的字符串中的操作之间添加空间?鉴于(1)它已经有空间时不会增加空间,(2)它将删除两个或更多个空间并将其转换为一个空间。我试过全部替换,但如果整数是2位或更多,它将无法工作。我也试过这段代码,但它不起作用。 strExp = strExp.replace("(+|-|*|/)", " ").trim();
样品输入:10 + 2
输出样本:10 + 2
或
样品输入:10+ 2
输出样本:10 + 2
如何在给定字符串中的两个操作之间添加空格?
回答:
你实际上试图用空间替换数学运算符号。相反,您应该替换为空格包围的匹配操作符号。要替换匹配的操作符号,请使用反向引用(即
$1
来引用第一个捕获组)。您需要
replaceAll()
才能使用正则表达式。trim()
有无关的字符串,它是多余的中间发现的空间。由于您匹配的是单个字符(操作符号),因此使用字符类(
[...]
)而不是交替更清晰。要使用一个空格代替潜力一系列空间添加
\s*
各地的操作符号模式。
这将使您以下代码:
strExp = strExp.replaceAll("\\s*([+*/-])\\s*", " $1 ");
以上是 如何在给定字符串中的两个操作之间添加空格? 的全部内容, 来源链接: utcz.com/qa/260769.html