如何通过括号将字符串拆分为子字符串,又如何将其放入其他字符串中?

问题描述

我正在尝试对计算器进行编码,并且试图创建“ Suboperation”类。 我想从大量输入中生成较小的子操作。例如: (4 + 5)是由ParamA(4)ParamB(5)和Operator(+)组成的子运算。 问题是,我想这样做(4+(6 + 5))是另一个子操作中的子操作。

我想这会在适当的时候给我带来问题,但是我还不能克服输入识别部分。

我设法使它获得字符串“(4 + 5)/(6-8)”,并将其在(4 + 5)和(6-8)之间分开。 问题出在我尝试获得... 这个:((4 + 5)-7)

进入此:(4 + 5),(4 + 5)-7。

我试图将开括号和闭括号索引保存在不同的数组中, 然后找出一种模式来获取子字符串,但是我被卡住了。

类似这样的东西:

public ArrayList findOperations(){

    ArrayList<String> operations = new ArrayList();
    ArrayList<Integer> start = new ArrayList();
    ArrayList<Integer> end = new ArrayList();

    int index = 0;

    for (char c : this.input.toCharArray()) {

        if (Character.toString(c).equals("(")) {
            start.add(index);
        }

        if (Character.toString(c).equals(")")) {
            end.add(index);
        }

    }


    int indexNow=0;

    for(int st:start){

      if(start.get(indexNow++)>end.get(indexNow)){
                operations.add(input.substring(st,end.get(indexNow)));
            }
      else{
          break;
      }


      indexNow++;
    }




    return operations;
}

说明: 我想要一个这样的方法并输入: “(((4 + 5)-6)” 并返回这样的字符串数组: [“(4 + 5)-6”,“ 4 + 5”]

有什么想法吗?自从我开始学习以来,这是我第一次需要严重的帮助。谢谢您的耐心等候。

解决方法

暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!

如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。

小编邮箱:dio#foxmail.com (将#修改为@)

相关问答

错误1:Request method ‘DELETE‘ not supported 错误还原:...
错误1:启动docker镜像时报错:Error response from daemon:...
错误1:private field ‘xxx‘ is never assigned 按Alt...
报错如下,通过源不能下载,最后警告pip需升级版本 Requirem...