【问题标题】:Split a mathematical function containing using signs in java [duplicate]在java中拆分包含使用符号的数学函数[重复]
【发布时间】:2018-04-16 07:53:34
【问题描述】:

我想通过其中变量的符号来拆分一个 数学函数,如下所示:

 input-->   x-5y+3z=10

 output--> [x,-5y,+3z,=10]

这段代码不能按我想要的方式工作:

String function = "x-5y+3z=10";
String split = function.split("=|-|\\+");

数组的输出是:

[x,5y,3z,10]

那么正确的正则表达式是什么?

【问题讨论】:

    标签: java arrays regex string split


    【解决方案1】:

    使用split 的“问题”是使用的分隔符将被删除,因为它会占用此分隔符之间的部分,您需要一个非捕获模式或简单的前瞻模式:匹配某些东西这是在别的东西之前

    (?=[-+=]) 模式会起作用,它会占用以-+= 符号开头的部分而不删除它:

    String function = "x-5y+3z=10";
    String[] split = function.split("(?=[-+=])");
    System.out.println(Arrays.toString(split)); //[x, -5y, +3z, =10]
    

    Some doc on Lookahead

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2015-10-13
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2014-01-28
      • 2023-03-15
      • 2021-09-07
      • 1970-01-01
      相关资源
      最近更新 更多