JAVA如何使用方法在main中打印出数组?

时间:2017-12-04 21:39:15

标签: java methods return

所以我需要创建一个方法,它将获取整数并返回一个长度为3的数组,并在输入时使用这三个整数。

这是我创建的内容,但它会返回此 $today = date('d'); $tomorrow = date('d', strtotime('+ 1 day')); $thedayaftertomorrow = date('d', strtotime('+ 2 day')); $current_month = date('m'); $next_month = date('m', strtotime('+ 1 month')); $args = array ( 'posts_per_page' => 4, // number of posts 'post_type' => 'employees', // your custom post type 'meta_key' => 'birthday', // your custom date field name 'orderby' => 'meta_value_num', 'order' => 'ASC', 'meta_query' => array( 'relation' => 'OR', array( 'key' => 'birthday', 'compare' => 'REGEXP', 'value' => '[0-9]{4}' . $current_month . $today, ), array( 'key' => 'birthday', 'compare' => 'REGEXP', 'value' => '[0-9]{4}' . $current_month . $tomorrow, ), array( 'key' => 'birthday', 'compare' => 'REGEXP', 'value' => '[0-9]{4}' . $current_month . $thedayaftertomorrow, ), array( 'key' => 'birthday', 'compare' => 'REGEXP', 'value' => '[0-9]{4}' . $next_month . '[0-9]{2}', ), ) );

[I@7852e922

我做错了什么?

3 个答案:

答案 0 :(得分:1)

当您将数组传递给System.out.println()时,将调用数组的toString()方法并写入生成的字符串。在数组的情况下,没有toString()的特定实现,因此使用超类Object的toString()。 Object.toString()定义为:

getClass().getName() + '@' + Integer.toHexString(hashCode());

这就是你所看到的[I@7852e922。基本上,这是数组实例的内部标识。

要打印数组的内容,请执行以下操作:

System.out.println(Arrays.toString(array));

或者这个:

for (int i = 0; i < array.length; i++) {
    System.out.println(array[i]);
}

答案 1 :(得分:1)

如果要打印数组,则应迭代其所有成员并打印每个成员。你现在正在做的是尝试打印数组对象,打印它的内存地址使用对象基类的默认toString()方法,如bhspencer所指出的,打印数组。

试试这个:

public class IntsToArray {
  public static int[] fill(int a, int b, int c){
      int[] array = new int[3];
      array[0] = a;
      array[1] = b;
      array[2] = c;
      return (array);
  }
    public static void main(String[] args){
        int a = Integer.parseInt(args[0]);
        int b = Integer.parseInt(args[1]);
        int c = Integer.parseInt(args[2]);
        int[] array = fill(a, b, c);

        for(int i = 0; i < array.length; i++)
        {
            System.out.println(array[i]);
        }
    }
}

答案 2 :(得分:0)

正如您所提到的不使用库,您可以从类数组中提取代码:

public static String stringify(int[] a) {
    if (a == null)
        return "null";
    int iMax = a.length - 1;
    if (iMax == -1)
        return "[]";

    StringBuilder b = new StringBuilder();
    b.append('[');
    for (int i = 0; ; i++) {
        b.append(a[i]);
        if (i == iMax)
            return b.append(']').toString();
        b.append(", ");
    }
}

并按以下方式使用:

public class IntsToArray {
    public static int[] fill(int a, int b, int c){
      int[] array = new int[3];
      array[0] = a;
      array[1] = b;
      array[2] = c;
      return (array);
    }
    public static void main(String[] args){
        int a = Integer.parseInt(args[0]);
        int b = Integer.parseInt(args[1]);
        int c = Integer.parseInt(args[2]);
        int[] array = fill(a, b, c);

        System.out.println(stringify(array));
    }
}