【问题标题】:make a table by using 2d array and a string array in java在java中使用二维数组和字符串数组制作表格
【发布时间】:2022-01-20 22:40:48
【问题描述】:

我遇到了一个问题。有一个二维数组,包括12个城市每月的贸易量。城市列在一个字符串数组中。我正在尝试制作一个表格来列出每个月的城市贸易记录。我尝试使用嵌套的 3 次 for 循环,但城市名称总是在循环中多次出现,它只需要在第一列中出现一次每个城市的。有人可以告诉我我的问题在哪里吗?我疯了。

我无法添加图片,但我可以告诉你程序会在第一列中不断生成城市名称。我认为我不应该将城市数组放在 for 循环中。但是如何才能在每一行中只添加一次城市名称呢?

int[][] sold = 
  { 
     { 190, 180, 435, 110, 223, 130, 123, 103, 135, 300, 392, 324 },
     { 520, 737, 264, 822, 562, 645, 205, 447, 126, 214, 2784 2138 }, 
     { 1103, 2203, 2376, 3038, 1721, 2463, 3541, 1183, 1213, 3310, 1416, 1523 }, 
     { 2110, 2630, 234, 108, 1439, 202, 2163, 538, 2414, 1155, 167, 2121 },
     { 2031, 274, 2236, 1823, 152, 107, 1912, 265, 123, 1130, 146, 1152 },
     { 2233, 1814, 2316, 2334, 1167, 1231, 2048, 2011, 1486, 1109, 1441, 1176 },
     { 1361, 2119, 1313, 1911, 1873, 2011, 2783, 1046, 1513, 1732, 1109, 1416 },
     { 2011, 1043, 1221, 131, 1231, 169, 2146, 1001, 123, 161, 619, 175 },
     { 1010, 2345, 106, 222, 175, 143, 2018, 1517, 163, 141, 208, 189 }
  };
    


  String[] cities= { 
     "Miami", 
     "Perth", 
     "Sydney",
     "Tokyo", 
     "Mosco", 
     "Winnipeg",
 "London",
     "Beijing", 
     "Guelph"
  };

非常感谢

我写这样的代码

   for(int city = 0;city<cities.length;city++) {
  
    System.out.printf("%s\n", cities[city]);
    for(int i = 0; i<sold.length;i++) {
        for(int j =0;j<sold[i].length;j++) {
            System.out.printf("%15d",sold[i][j]);
        }
        
    }System.out.println();
}

【问题讨论】:

  • 您能否在问题中包含控制台返回的内容?

标签: java arrays


【解决方案1】:

因此,假设citiessold 数据之间存在一对一关系,您可以使用外循环作为城市的索引器,然后从sold 中提取数据它在内部循环中,例如

public class Test {

    public static void main(String[] args) {
        new Test();
    }
    int[][] sold
            = {
                {190, 180, 435, 110, 223, 130, 123, 103, 135, 300, 392, 324},
                {520, 737, 264, 822, 562, 645, 205, 447, 126, 214, 2784, 2138},
                {1103, 2203, 2376, 3038, 1721, 2463, 3541, 1183, 1213, 3310, 1416, 1523},
                {2110, 2630, 234, 108, 1439, 202, 2163, 538, 2414, 1155, 167, 2121},
                {2031, 274, 2236, 1823, 152, 107, 1912, 265, 123, 1130, 146, 1152},
                {2233, 1814, 2316, 2334, 1167, 1231, 2048, 2011, 1486, 1109, 1441, 1176},
                {1361, 2119, 1313, 1911, 1873, 2011, 2783, 1046, 1513, 1732, 1109, 1416},
                {2011, 1043, 1221, 131, 1231, 169, 2146, 1001, 123, 161, 619, 175},
                {1010, 2345, 106, 222, 175, 143, 2018, 1517, 163, 141, 208, 189}
            };

    String[] cities = {
        "Miami",
        "Perth",
        "Sydney",
        "Tokyo",
        "Mosco",
        "Winnipeg",
        "London",
        "Beijing",
        "Guelph"
    };

    public Test() {
        for (int cityIndex = 0; cityIndex < cities.length; cityIndex++) {
            System.out.printf("%-8s", cities[cityIndex]);
            for (int data : sold[cityIndex]) {
                System.out.printf("%15d", data);
            }
            System.out.println("");
        }
    }
}

哪些打印...

Miami               190            180            435            110            223            130            123            103            135            300            392            324
Perth               520            737            264            822            562            645            205            447            126            214           2784           2138
Sydney             1103           2203           2376           3038           1721           2463           3541           1183           1213           3310           1416           1523
Tokyo              2110           2630            234            108           1439            202           2163            538           2414           1155            167           2121
Mosco              2031            274           2236           1823            152            107           1912            265            123           1130            146           1152
Winnipeg           2233           1814           2316           2334           1167           1231           2048           2011           1486           1109           1441           1176
London             1361           2119           1313           1911           1873           2011           2783           1046           1513           1732           1109           1416
Beijing            2011           1043           1221            131           1231            169           2146           1001            123            161            619            175
Guelph             1010           2345            106            222            175            143           2018           1517            163            141            208            189

【讨论】:

  • 请问for (int data : sold[cityIndex]) 是什么意思,这段代码有没有复杂的样式?
  • 这是一个增强的 for-each 循环,它将从序列中获取每个项目(在这个数组中)并使其在每个后续循环中可用,将其视为一种短手方法
猜你喜欢
  • 1970-01-01
  • 2022-01-09
  • 2013-10-10
  • 2010-12-19
  • 2023-04-08
  • 2019-02-18
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多