用java绘制直方图

用java绘制直方图,java,arrays,methods,Java,Arrays,Methods,我试图制作一个直方图,它看起来像这样: 1 - 5: **** 6 - 10: ****** 11 - 15: ** 16 - 20: ********** 21 - 25: *********** 26 - 31: ******** 31 - 35: **** 36 - 41: ******* 41 - 45: ************ 46 - 50: ***************** 以下是我目前的代码: public static void graph (int[

我试图制作一个直方图,它看起来像这样:

 1 - 5: ****
 6 - 10: ******
 11 - 15: **
 16 - 20: **********
 21 - 25: ***********
 26 - 31: ********
 31 - 35: ****
 36 - 41: *******
 41 - 45: ************
 46 - 50: *****************
以下是我目前的代码:

public static void graph (int[] arr) {
    for ( int i=0; i <= 50; i+=5) {
        System.out.println(i+" - " + ( i + 4 ) + " :" );
        for ( int num : arr) {
            if ( num >= i && num <= i + 4)
                System.out.print("*");
        }
    }
}
需要一些帮助来修复我的代码。我想弄清楚这件事已经有一段时间了。另外,如果有人愿意帮忙,请使用不太高级的java代码。我想了解我正在编写的代码,所以我希望大家只修改我的代码,而不是编写任何新的代码。提前感谢。

试试这个:

public static void graph (int[] arr) {

          for ( int i=0; i <= 50; i+=5){
              System.out.print(i+" - " + ( i + 4 ) + " :" );
              for ( int num : arr) {
                  if ( num >= i && num <= i + 4)
                      System.out.print("*");

                  }
                  System.out.println();
              }
}

在内部循环之前调用
println
。将其更改为
print
,这样它就不会结束行,允许
*
字符在同一行上打印,然后在循环后添加
println()
public static void graph (int[] arr) {

          for ( int i=0; i <= 50; i+=5){
              System.out.print(i+" - " + ( i + 4 ) + " :" );
              for ( int num : arr) {
                  if ( num >= i && num <= i + 4)
                      System.out.print("*");

                  }
                  System.out.println();
              }
}
0 - 4 :***

5 - 9 :***

10 - 14 :

15 - 19 :*

20 - 24 :*

25 - 29 :

30 - 34 :

35 - 39 :

40 - 44 :

45 - 49 :

50 - 54 :*