在表格中创建均匀间隔的数字

时间:2015-03-24 11:44:56

标签: java

我使用TreeMaps来计算用户输入文字中的字母频率。当显示这些频率时,由于某些频率为零,因此输出非常混乱,而其他频率则是一位或两位小数。

例如,输入Harry

Letter |a |b |c |d |e |f |g |h |i |j |k |l |m |n |o |p |q |r |s |t |u |v |w |x |y |z |
Count  |0.2 |0 |0 |0 |0 |0 |0 |0.2 |0 |0 |0 |0 |0 |0 |0 |0 |0 |0.4 |0 |0 |0 |0 |0 |0 |0.2 |0 |

如何生成一个整齐间隔(并且不知道频率)的表格,如下所示:

Letter |a   |b |c |d |e |f |g |h   |i |j |k |l |m |n |o |p |q |r   |s |t |u |v |w |x |y   |z |
Count  |0.2 |0 |0 |0 |0 |0 |0 |0.2 |0 |0 |0 |0 |0 |0 |0 |0 |0 |0.4 |0 |0 |0 |0 |0 |0 |0.2 |0 |

为了制作我的表格,我使用了简单的for循环,这些循环在Treemap中递增,我正在考虑System.out.format命令,但我仍然在学习很多东西关于java所以这可能是错误的。

我的for循环在这里:

System.out.print("Letter |");
for (char a: Allmap.keySet()) {
  System.out.print(a + " |");
}

System.out.print("\n" + "Count  |");
for (double b: Allmap.values()) {
  System.out.print(df.format(b / CHARCOUNT) + " |");
}

1 个答案:

答案 0 :(得分:1)

我认为你想要这样的东西,虽然我没有时间去测试它。

System.out.print("Letter |");
for (char a : Allmap.keySet()) {
    System.out.print(a + " |");
}

System.out.print("\nCount  |");
for (double b : Allmap.values()) {
    System.out.printf( "%.2f |", d );
}

另请注意,此代码会将double四舍五入到小数点后两位,因此3.14159变为3.142.71828变为2.72

另外,这是我将double四舍五入到小数点后两位的来源: Round a double to 2 decimal places