【发布时间】:2014-02-18 17:50:16
【问题描述】:
我想做的是结合接口方法来完成给定字符串内变量的任务。给定的字符串“s”可以由数字、+、- 和 * 符号组成。整数返回相当简单,因为我所做的只是返回该 int 的整数接口方法。但是,对于其他 3 个符号,我需要递归地合并一个方法来查找左右节点。我已经在下面发布了我的代码...
public static Expression parseString( String s ) {
String[] parse = s.split("\\s+");
String[] parsecopy;
Expression exp1;
Expression exp2;
if(s == null) {
return null;
}
if(parse[0].equals("+")) {
exp1 = parseString(parse[0]);
parsecopy = Arrays.copyOfRange(parse, 2, parse.length);
exp2 = parseString(parsecopy);
return new AddExpression(exp1, exp2);
}
else if() {
问题 - 所以我的代码创建了原始字符串的副本以查找该字符串中的下一项。我通过使用 Array 函数 copyOfRange() 来做到这一点。但是,当我想调用 exp2 = parseString(parsecopy) 时,我收到一个错误,因为 parseString 接受了一个字符串参数,该参数必须是 String[] 类型。我试图获取 parsecopy 而不是 parsecopy[0] 的原因是因为 parsecopy 不会创建无限循环,我实际上可以遍历字符串。
Error code - The method parseString(String) in the type Parse is not applicable for the arguments (String[])
【问题讨论】: