我想要做的是合併接口方法來完成賦予字符串內部變量的任務。我給出的字符串「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