JAVA数组打印输出问题。
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了JAVA数组打印输出问题。相关的知识,希望对你有一定的参考价值。
public class Test
public static void main(String [] args)
Date[] days = new Date[10];
for(int i=0; i<10; i++)
days[i] = new Date(2004,4,6+i);
display(days);
static void display(Date days[])
for(int i = 0; i < days.length; i++)
System.out.println(days[i] + " ");
System.out.println("");
class Date
int year, month, day;
Date( int y, int m, int d)
year = y ; month = m; day = d;
public int compare(Date date)
return year>date.year ? 1
: year<date.year ? -1
: month>date.month ? 1
: month<date.month ? -1
: day > date.day ? 1
: day < date.day ? -1 : 0;
为什么运行打印出来不是显示各元素的值?
class Date
int year, month, day;
Date( int y, int m, int d)
year = y ; month = m; day = d;
这个类对象。
System.out.println(days[i].getClass())可以看出 数组里保存的是
test.Date 这个对象。
要输出个各个元素值 必须是 days[i].year,days[i].month,days[i].day .
这个是很基础的东西。
thinking in java 这本书好好看看。java的入门书。 参考技术A public class Test
public static void main(String[] args)
Date[] days = new Date[10];
for (int i = 0; i < 10; i++)
days[i] = new Date(2004, 4, 6 + i);
display(days);
static void display(Date days[])
for (int i = 0; i < days.length; i++)
System.out.println(days[i] + " ");
System.out.println("");
class Date
int year, month, day;
Date(int y, int m, int d)
year = y;
month = m;
day = d;
public int compare(Date date)
return year > date.year ? 1 : year < date.year ? -1 : month > date.month ? 1 : month < date.month ? -1 : day > date.day ? 1
: day < date.day ? -1 : 0;
public String toString()
return year + "-" + month + "-" + day;
你的display(days);中days是个对象,出来的当然不是你想要的东西了,重写toString()方法,可以的,结果是:
2004-4-6
2004-4-7
2004-4-8
2004-4-9
2004-4-10
2004-4-11
2004-4-12
2004-4-13
2004-4-14
2004-4-15
bauble1213的也对 参考技术B 输出的时候应该输出date.year或date。month或date。day,你直接输出date【i】输出的是date对象,不是里面的内容,该输出语句就行了
System.out.println(days[i].year + days[i].month+days[i].day); 参考技术C public class Test
public static void main(String [] args)
Date[] days = new Date[10];
for(int i=0; i<10; i++)
days[i] = new Date(2004,4,6+i);
display(days);
static void display(Date days[])
for(int i = 0; i < days.length; i++)
System.out.println(days[i] + " ");
System.out.println("");
class Date
int year, month, day;
Date( int y, int m, int d)
year = y ; month = m; day = d;
public int compare(Date date)
return year>date.year ? 1
: year<date.year ? -1
: month>date.month ? 1
: month<date.month ? -1
: day > date.day ? 1
: day < date.day ? -1 : 0;
public String toString()
return "Date.year:"+year+" "+"month:"+month+" "+"day:"+day;
记住一句话,最好每个类给他重写toString()方法!
我上面修改了,只增加了一个toString()方法就可以了。。。打印OK!
Date.year:2004 month:4 day:6
Date.year:2004 month:4 day:7
Date.year:2004 month:4 day:8
Date.year:2004 month:4 day:9
Date.year:2004 month:4 day:10
Date.year:2004 month:4 day:11
Date.year:2004 month:4 day:12
Date.year:2004 month:4 day:13
Date.year:2004 month:4 day:14
Date.year:2004 month:4 day:15 参考技术D 重写Date类的toString()方法
你如何返回一个数组并在java中打印出来? [关闭]
【中文标题】你如何返回一个数组并在java中打印出来? [关闭]【英文标题】:How do you return an array and print it out in java? [closed] 【发布时间】:2018-06-23 17:52:07 【问题描述】:我被这个问题困住了。更具体地说,它是具有 countFeatures 的类。我将遍历数组并打印出每个变量。虽然我在发布问题时是编程新手,但我已经解决了这个问题并留给其他人查看。预期输出是
package main;
public class Main
static int count = 0;
static int countA[];
public static void main(String args[])
System.out.println(countDoors("---+---+-++-"));
System.out.println(countFeatures("---+---|| ###+-++-"));
public static int countDoors(String s)
for(int i = 0; i<s.length();i++)
if(s.charAt(i)=='+')
count++;
return count;
public static int[] countFeatures(String s)
for(int i=0; i<s.length();i++)
if(s.charAt(i) == '|')
countA[0]++;
else if(s.charAt(i)=='-')
countA[1]++;
else if(s.charAt(i)=='.')
countA[2]++;
else if(s.charAt(i) =='#')
countA[3]++;
else
return null;
return countA;
【问题讨论】:
关于“如何返回数组”,您必须先创建数组对象:int[] countA = new int[4];
而你在countFeatures()
中实现return null;
的方式可能不是你想要的。
您可以使用 Arrays.toString(array) 来打印数组。因此您可以调用 System.out.println(Arrays.toString(countFeatures("---+---|| ###+-++-")));
顺便说一句,当我想了解更多有关 Java 语言功能的信息时,我通常会尝试使用 Google 搜索,例如“java 如果您要询问如何打印数组的元素,只需使用循环即可。
假设我们有int[] numbers = new int[] 1, 3, 5, 9, 23
,您可以简单地使用循环遍历数组并单独打印每个元素。
for (int i : numbers)
System.out.println(i);
【讨论】:
Arrays.toString()
通常是首选,但这是初学者开始的好方法。
@markspace 输出会略有不同。 Arrays.toString()
将输出类似 [1, 2, 3, 4]
的内容,而遍历数组并打印每个元素只会打印元素。
输出肯定是不同的,但是学习如何迭代数组对于初学者来说是很好的做法。输出可以很容易地修复(这也是一个好习惯)。【参考方案2】:
Array 是 java 中的非原始数据类型,因此首先您必须使用 new 运算符对其进行初始化。像这样的
public static int[] countFeatures(String s)
countA = new int[s.length()]; // like this. you can also initialize
// it using operator
for(int i=0; i<s.length();i++)
if(s.charAt(i) == '|')
countA[0]++;
else if(s.charAt(i)=='-')
countA[1]++;
else if(s.charAt(i)=='.')
countA[2]++;
else if(s.charAt(i) =='#')
countA[3]++;
else
return null;
return countA;
现在,如果您尝试打印一个数组对象,它将打印一个字母数字值,该值是该对象的外行语言地址。 所以要打印数组的值,你必须像这样打印它:
for(int i=0: i < countA.length : i++)
System.out.println(countA[i]);
【讨论】:
以上是关于JAVA数组打印输出问题。的主要内容,如果未能解决你的问题,请参考以下文章