返回一个字符串数组

时间:2017-03-19 21:04:11

标签: java arrays string

import java.util.Random;
import java.util.Scanner;


public class ArrayHelpers{
    public static void main(String[] args){

      String arr[] = {"M3", "M4", "M5", "M6", "X5M", "M750Li"};
      String stockElements[] = {"BMW M2 Coupé","BMW M3 Sedan", "BMW M4 Coupé", "BMW M5 Sedan","BMW M6 Gran Coupé", "BMW X5 M", "BMW X6 M", "M 750Li"};   
      int size = 7;
      printArrayQuantities(arr);
      System.out.println(getRandomElement(arr));
      System.out.println(getRandomArray(size, stockElements));
   }

   public static void printArrayQuantities(String[] arr){
      int num[] = {2, 1, 3, 3, 5, 1};

      for( int i = 0; i < num.length; i++){
         System.out.println(arr[i] + " " + num[i]);

      }



   }


   public static String getRandomElement(String[] arr){
      int randomNum = 0 + (int)(Math.random() * 6);
      return arr[randomNum];


   }

   public static String[] getRandomArray(int size, String[] stockElements){
      String[] randArray = new String[size];
      for( int i = 0; i < size; i++){

         randArray[i] = getRandomElement(stockElements);

      }
      return randArray;
   }








}

所以我试图返回一个随机插入了stockElementsgetRandomElement方法的元素的数组。当我尝试从第12行(System.out.println(getRandomArray(size, stockElements));)打印该数组时,它会生成[Ljava.lang.String;@6d06d69c作为输出。我知道.toString()方法,但我的任务要求是不使用任何内置数组方法。我到底该怎么做呢?

4 个答案:

答案 0 :(得分:0)

一个简单的解决方案就是用 for each loop 来迭代它。

String[] myArray = getRandomArray(size, stockElements); // this stores a reference of the returned array.
for(String str : myArray){
    System.out.println(str);
}

for loop ,如果您愿意的话。

String[] myArray = getRandomArray(size, stockElements); // this stores a reference of the returned array.
for(int i = 0; i < myArray.length; i++){
    System.out.println(myArray[i]);
}

答案 1 :(得分:0)

由于您的函数返回一个数组,当您尝试打印数组时,您应该使用for / while循环遍历每个元素并单独打印它们。由于您正在尝试打印数组变量,因此会为其打印java的句柄。所以试试这样的事情

String[] randomArray = getRandomArray(size, stockElements);
for (String s : randomArray) {
    System.out.println(s);
}

答案 2 :(得分:0)

您已经返回了数组,只需要分配它:

String[] newArray = getRandomArray(size, stockElements);

但是......如果你想打印它,请使用下面的内容。

使用Java 8:

String.join(delimiter, newArray);

或(对于较旧的Java):

StringBuilder builder = new StringBuilder();
for(String s : newArray) {
    builder.append(s);
    builder.append(delimeter);
}
return builder.toString();

答案 3 :(得分:0)

System.out.println(getRandomArray(size, stockElements));替换为    String [] output = getRandomArray(size, stockElements); printArrayQuantities(output);