gpt4 book ai didi

java - 用于拆分数字表达式的正则表达式

转载 作者:行者123 更新时间:2023-11-30 11:24:30 25 4
gpt4 key购买 nike

我需要拆分数值表达式。基础很简单,但是……我试过了

public static void main(String[] args) {
String [] a = {"1+1", "1-1", "22*43", "25/17", "-3 * -3"};
String [] z;
for(int i = 0; i < a.length; i++){
z = a[i].split("[\\D]");
System.out.println(i + ": " + a[i] + " |" + z[0] + "| " + "|" + z[1] + "|");
}
}

我得到:

0:  1+1  |1|  |1|
1: 1-1 |1| |1|
2: 22*43 |22| |43|
3: 25/17 |25| |17|
4: -3 * -3 || |3|

问题是第 4 行:应该是:

4:  -3 * -3  |-3|  |-3|

是否可以通过增强正则表达式 \\D 来实现这一点?

最佳答案

这里的问题是 \D 也捕获了 - 符号。

一种解决方案是将表达式开头的 - 符号和运算符后面的符号作为两种特殊情况处理。

一个更优雅的解决方案是实现语法。参见 http://lukaszwrobel.pl/blog/math-parser-part-2-grammar .

关于java - 用于拆分数字表达式的正则表达式,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20631509/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com