如何解决如何通过括号将字符串拆分为子字符串,又如何将其放入其他字符串中?
我正在尝试对计算器进行编码,并且试图创建“ 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 举报,一经查实,本站将立刻删除。