То, что я пытаюсь сделать, это включить методы интерфейса для выполнения задачи с учетом переменных внутри строки. Строка, которую я даю, «s» может быть заполнена цифрами, +, - и *. Целочисленный возврат довольно прост, так как все, что я делаю, - это метод целочисленного интерфейса этого int. Однако для остальных 3 символов мне нужно рекурсивно включить метод поиска левого и правого узлов. Я отправил свой код ниже ...Parsing Java String type Ошибка
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 в parse [0] – user2908101
, и для этого требуется, чтобы я делал parsecopy [0] вместо замены parsecopy – user2908101