如何在方法中返回数组?

时间:2015-01-27 21:08:16

标签: java arrays return

我不确定如何返回字符串数组。最初,我使用for循环填充数组,然后使用toString()将其转换为字符串。我不允许更改返回类型,所以我想知道如何返回字符串数组?我尝试返回数组,但它返回了内存地址。这是代码:

public String getValues(int start, int end) 
{
    String[] values  = new String[end+1];
    for(int i=0;i<values.length;i++)
    {
       if(i % ham != 0 && i % spam != 0)
       {
           values[i]=Integer.toString(i);
       }
       else if(i % ham == 0 && i % spam != 0)
       {
           values[i]= word2;
       }
       else if(i % ham != 0 && i % spam == 0)
       {
           values[i]= word3;
       }
       else if(i % ham == 0 && i % spam == 0)
       {
           values[i]= word1;
       }
    }
    String[] result= java.util.Arrays.copyOfRange(values,2,end+1);
    String str1= java.util.Arrays.toString(result);
    return str1;
}

我只能编辑这个课程。我的方法必须返回包含其中所有元素的String数组。没有println,print或任何类似的东西。我以为只返回数组会起作用,但我只是得到了地址。我不知道问题是什么。我将返回类型更改为String []并取出toString()并返回结果。仍然得到数组的地址,具体如下:[Ljava.lang.String; @ 391673

1 个答案:

答案 0 :(得分:3)

您必须将返回值的类型更改为String[]

public String[] getValues(int start, int end) {
  // ...
  return result;
}

然后您可以打印结果:

public static void main(String[] args) {
  String[] values = new MyClass().getValues(1, 2);
  String valuesString = java.util.Arrays.toString(values);
  System.out.println("VALUES: " + valuesString);
}