【问题标题】:Side by Side display of parallel arrays in javajava中并行数组的并排显示
【发布时间】:2013-04-12 12:03:11
【问题描述】:

我对 java 很陌生,我已经编写了代码来显示以下并行数组的值:

short[] Years = {1995, 1997, 1998,1999, 2000, 2001, 2002, 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010, 2011, 2012};

String[] Months = {"January", "February", "June", "January", "March", "June", "July", "August", "September", "March", "May", "January", "March", "July", "November", "March", "June"};

目前,当我运行它时,它们会相互显示。我试图让它并排显示。 我该怎么做?

这是显示它们的代码:

System.out.println("Years");
for(short temp: years)
{
System.out.println(temp);
}
System.out.println("Months");
for(String temp: months)
{
System.out.println(temp);
}

【问题讨论】:

  • 我试图把它放在问题中
  • 我已经编辑了我的答案。请检查

标签: java parallel-arrays


【解决方案1】:

你可以这样做:

 short[] years = {1995, 1997, 1998,1999, 2000, 2001, 2002, 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010, 2011, 2012};
    String[] winners = {"January", "February", "June", "January", "March", "June", "July", "August", "September", "March", "May", "January", "March", "July", "November", "March", "June"};
    System.out.println("Years"+"\t"+"Premiers");
    int i = years.length-1;
    int j= winners.length-1;
    int  k=0;
int l=0;
    do{
            i--;
            j--
        System.out.println(years[k++]+"\t"+winners[l++]);
    }while(i>=0 || j>=0);

你会发现这样的输出:

Years   Premiers
1995    January
1997    February
1998    June
1999    January
2000    March
2001    June
2002    July
2003    August
2004    September
2005    March
2006    May
2007    January
2008    March
2009    July
2010    November
2011    March
2012    June

【讨论】:

  • 您应该检查您的 while 语句中的条件。现在你有一个无限循环。
  • 谢谢.. 已编辑.. 只是忘了添加两行。现在好吗?
  • 有趣...我期待while(i>=k && j >=l)
【解决方案2】:

试试这个:

int length = Years.length > Months.length ? Months.length : Years.length;
for(int index = 0; index < length; index++) {
    System.out.println(Years[index] + '\t' + Months[index]);
}

我建议阅读this

【讨论】:

  • 它可以并排显示它们,但每年都会发布所有月份。例如 1995 年 1 月、1995 年 2 月等
【解决方案3】:

如果它们的长度相等:

for (int i = 0; i < Years.length; i++) {
    System.out.println(Years[i] + '\t' + Months[i]);
}

【讨论】:

  • 请注意,如果两个数组长度不同,这会给你一个OutOfBounds exception
猜你喜欢
  • 2014-09-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多