Как вернуть две строки в одном операторе возврата? - PullRequest
13 голосов
/ 20 февраля 2010
public String[] decode(String message)
{
     String ans1 = "hey"; 
     String ans2 = "hi";  
     return {ans1 , ans2};  // Is it correct?
}

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

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

Ответы [ 5 ]

24 голосов
/ 20 февраля 2010

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

 return new String[]{ ans1, ans2 };

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

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

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

10 голосов
/ 20 февраля 2010
return new String[] { ans1, ans2 };

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

4 голосов
/ 20 февраля 2010
return new String[] {ans1 , ans2};
2 голосов
/ 20 февраля 2010
return new String[]{ans1,ans2};

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

0 голосов
/ 18 ноября 2014

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

public String firstMiddleLast()
{
   //returns first, middle, and last names
    return (first + " " + middle + " " + last);
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...