Подтвердить что ты не робот

Как вернуть две строки в один оператор возврата?

public String[] decode(String message)
{
     String ans1 = "hey"; 
     String ans2 = "hi";  
     return {ans1 , ans2};  // Is it correct?
}

Этот пример не работает должным образом. Я получаю сообщение об ошибке.

Как я могу получить первоначальный вопрос?

4b9b3361

Ответ 1

Правильный синтаксис будет

 return new String[]{ ans1, ans2 };

Даже если вы создали два String (ans1 и ans2), вы не создали массив String (или String[]), который вы пытаетесь вернуть. Синтаксис, показанный выше, является сокращением для немного более подробного, но эквивалентного кода:

String[] arr = new String[2];
arr[0] = ans1;
arr[1] = ans2;
return arr;

где мы создаем массив строк 2 длины, присвойте первое значение ans1, а второе - ans2, а затем вернем этот массив.

Ответ 2

return new String[] { ans1, ans2 };

Причина, по которой вам нужно это сделать, это просто сказать, что {ans1, ans2} фактически не создает объект, который вы пытаетесь вернуть. Все, что он делает, это добавить два элемента в массив, но без "новой String []" вы на самом деле не создали массив для добавления элементов в.

Ответ 3

return new String[] {ans1 , ans2};

Ответ 4

return new String[]{ans1,ans2};

Это должно сработать. К вашему другому вопросу в комментариях. Поскольку Java является строго типизированным языком, все переменные/результаты должны быть созданы. Поскольку вы не создаете результат, который хотите вернуться в любом месте, мы делаем экземпляр в самом выражении return.

Ответ 5

В настоящий момент я только ученик средней школы, но легкое решение, которое я получил от моего друга, должно работать. Это похоже на это (это часть проекта в моем классе AP):

public String firstMiddleLast()
{
   //returns first, middle, and last names
    return (first + " " + middle + " " + last);
}