【问题标题】:Can I use an enhanced for loop to print two dimensional arrays?我可以使用增强的 for 循环来打印二维数组吗?
【发布时间】:2014-03-08 17:57:45
【问题描述】:

我正在学习这些东西,并且习惯于使用常规迭代器进行循环。无论如何,我想知道我是否可以打印这个简单的数组:

    public class enchancedtwodimdemo
{
    public static void main (String[] args)
    {
        String[][] chords = {{"A", "C", "D", "E"},{"Am","Dm"}};
    }    

}

【问题讨论】:

  • 我不明白这个问题。
  • 您的代码无法编译。二维数组实际上是一个数组数组。每个你都可以在数组上使用一个 foreach 循环。所以你有答案了。

标签: java arrays


【解决方案1】:

当然。您可以使用一个增强型来获取“内部”String[]s,然后使用另一个来打印其中的每个 String

(我猜你的意思是写String[][] = {{...}}。)

没有获取嵌套结构的叶元素的通用方法。但是如果你只想打印它,你可以看看Arrays.deepToStringhandles that nested access for you

【讨论】:

  • "没有通用的方法可以打印语言中内置的嵌套数组" the language, no, the API, yes
  • @fge 谢谢!我知道有什么东西……正在寻找。会编辑。 :)
【解决方案2】:

当然,你可以这样做:

for(String[] str:chords) {
   for(String value:str) {
      //Do anything with 'value' here
   }
}

我还没有编译,但这应该可以。

【讨论】:

  • 你最好尝试编译。
  • 不是array是什么?
  • 我正在编辑中,同时人们投了反对票!!!伤心..前面没有编译器,发生错字。但是有编辑选项吗?我希望 SO 确实有像“X 人正在编辑帖子..”这样的选项,就像在聊天中一样 :)
  • 5 cmets 写在这里只是为了传达一个小信息change value to str。 :-/ @PradeepSimha 你也应该更改评论:) +1
  • @PM 77-1.. 正如我在 cmets 中提到的,我正在编辑。
【解决方案3】:

首先,String[] 是一个一维数组。一个二维数组是:

String[][] chords = { { "A", "C", "D", "E" }, { "Am", "Dm" } };

您可以使用增强型 for 循环首先循环一维数组 (String[]),然后循环遍历每个 String

for (String[] array : chords) {
    for (String string : array) {
        // ...
    }
}

注意,当您使用增强型for循环时,您必须指定元素的类型

【讨论】:

    【解决方案4】:

    多维数组是数组的数组。尝试将此添加到您的代码中:

        for (String rows[]: chords) {
            for(String cols: rows) {
                System.out.println(cols+"\t");
            }
                System.out.println();
        }
    

    【讨论】:

      猜你喜欢
      • 2011-05-24
      • 2015-06-12
      • 1970-01-01
      • 1970-01-01
      • 2013-08-02
      • 2020-12-03
      • 1970-01-01
      • 1970-01-01
      • 2019-07-03
      相关资源
      最近更新 更多