我想要做的是合并接口方法来完成赋予字符串内部变量的任务。我给出的字符串“s”可以由数字,+, - 和*符号组成。整数返回相当容易,因为我所做的只是返回该int的整数接口方法。但是,对于其他3个符号,我需要递归合并一个方法来查找左右节点。我已为我下面的代码...解析Java字符串类型错误
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[])
问题是我得到一个无尽的while循环在解析[0] – user2908101
,它需要我必须做parsecopy [0]替代parsecopy – user2908101