如何在给定字符串中的两个操作之间添加空格?

我如何给定的字符串中的操作之间添加空间?鉴于(1)它已经有空间时不会增加空间,(2)它将删除两个或更多个空间并将其转换为一个空间。我试过全部替换,但如果整数是2位或更多,它将无法工作。我也试过这段代码,但它不起作用。
strExp = strExp.replace("(+|-|*|/)", " ").trim();

样品输入:10 + 2
输出样本:10 + 2

样品输入:10+ 2
输出样本:10 + 2
如何在给定字符串中的两个操作之间添加空格?

回答:

  1. 你实际上试图用空间替换数学运算符号。相反,您应该替换为空格包围的匹配操作符号。要替换匹配的操作符号,请使用反向引用(即$1来引用第一个捕获组)。

  2. 您需要replaceAll()才能使用正则表达式。

  3. trim()有无关的字符串,它是多余的中间发现的空间。

  4. 由于您匹配的是单个字符(操作符号),因此使用字符类([...])而不是交替更清晰。

  5. 要使用一个空格代替潜力一系列空间添加\s*各地的操作符号模式。

这将使您以下代码:

strExp = strExp.replaceAll("\\s*([+*/-])\\s*", " $1 "); 

以上是 如何在给定字符串中的两个操作之间添加空格? 的全部内容, 来源链接: utcz.com/qa/260769.html

回到顶部