java - 使用数组创建具有给定值的直方图帮助请:(

标签 java arrays

我们被要求创建一个具有给定值的简单直方图,但我的代码似乎不起作用。我真的需要这方面的帮助。 编辑:当我运行它时会出现此错误:

(Exception in thread "main" java.lang.ArrayIndexOutOfBoundsException: 5` at Exercise39_Histogram.main(Exercise39_Histogram.java:13) Process completed)

代码:

 public class Exercise39_Histogram
    {
        public static void main(String args[])
        {
            int el[]= new int[]{0, 1, 2, 3, 4, 5};
            int val[] = new int[]{10, 3, 6, 18, 11, 1};
            String ast[] = new String[5];
            ast[0] = "**********";
            ast[1] = "***";
            ast[2] = "******";
            ast[3] = "******************";
            ast[4] = "***********";
            ast[5] = "*";

            System.out.println("Elements\tValue\tHistogram");
            System.out.print(el[0]+"\t"+val[0]+"\t"+ast[0]);
            System.out.print(el[1]+"\t"+val[1]+"\t"+ast[1]);
            System.out.print(el[2]+"\t"+val[2]+"\t"+ast[2]);
            System.out.print(el[3]+"\t"+val[3]+"\t"+ast[3]);
            System.out.print(el[4]+"\t"+val[4]+"\t"+ast[4]);
            System.out.print(el[5]+"\t"+val[5]+"\t"+ast[5]);

            }   
    }

最佳答案

当您创建数组时,将其大小设置为 5,

String ast[] = new String[5];

但当你使用后者时

ast[5] = "*";

您试图保存索引为 6 的数据,因为数组索引从 0 开始。您应该将数组的大小更改为 6。

为了获得正确的显示,您可能需要使用:

System.out.println

显示所有直方图,否则它们将全部显示在同一行中。

关于java - 使用数组创建具有给定值的直方图帮助请:(,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35156706/

相关文章:

java - android: 在 UI 线程中运行一个耗时的任务?

javascript - 如何在JavaScript中计算数组中从最后一个到第一个元素之间的差异?

arrays - 具有最小绝对值的子序列

javascript - 如何显示(或调用)在 javascript 数组内部定义的匿名函数的内容

javascript - 幕后是否存在 JavaScript 中的数组/列表?

c - 数独检查程序C

java - Objective C 中的依赖注入(inject)/多态性

java - 如何定义 GOOGLE_APPLICATION_CREDENTIALS?

java - 关键字 'new' 如何工作,特别是当我启动静态嵌套类时?

java - jdbcTemplate.update 卡住