所以我需要创建一个方法,它将获取整数并返回一个长度为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
我做错了什么?
答案 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));
}
}