输出一个JAVA函数,函数入参为数据表达式如 -2*3*-4, 输出内容为 @2*3*@4
时间: 2024-09-25 14:07:28 浏览: 38
你可以创建一个名为`transformExpression`的Java函数,利用正则表达式和字符串操作来实现这个需求。以下是函数的一个简单实现:
```java
import java.util.regex.Matcher;
import java.util.regex.Pattern;
public class ExpressionTransformer {
public static String transformExpression(String input) {
// 正则表达式匹配负号及其前后的数字和运算符
Pattern pattern = Pattern.compile("-?\\d+([-+/*])?-?\\d+");
Matcher matcher = pattern.matcher(input);
StringBuilder transformedOutput = new StringBuilder();
while (matcher.find()) {
// 如果当前匹配的是负号,但在开头或运算符后面,保留原样
if (matcher.group(1) != null && (matcher.start() == 0 || !Character.isDigit(matcher.group(1).charAt(0)))) {
transformedOutput.append('@');
} else {
transformedOutput.append(matcher.group());
}
}
return transformedOutput.toString();
}
public static void main(String[] args) {
System.out.println(transformExpression("-2*3*-4")); // 输出: @2*3*@4
}
}
```
这个函数通过查找并替换输入表达式的负号前后的数字和运算符部分来达到转换的目的。每个找到的负号或其前后的整数都会被`@`替代,除非它是作为运算符的一部分出现或位于表达式的起始位置。
阅读全文