画柱状图Java
样例输入:
THE QUICK BROWN FOX JUMPED OVER THE LAZY DOG.
THIS IS AN EXAMPLE TO TEST FOR YOUR
HISTOGRAM PROGRAM.
HELLO!
样例输出:
*
*
* *
* * * *
* * * *
* * * * * *
* * * * * * * * * *
* * * * * * * * * * * * *
* * * * * * * * * * * * * * * * * *
* * * * * * * * * * * * * * * * * * * * * * * * * *
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
题目的意思是从命令行输入一个大写的字符串,求一个字符出现的频率,画出来。
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 | import java.io.BufferedReader; import java.io.IOException; import java.io.InputStreamReader; import java.util.Arrays; public class Main { public static void main(String[] args) throws NumberFormatException, IOException { BufferedReader read = new BufferedReader( new InputStreamReader( System.in)); int [] a = new int [ 26 ]; int tt; for ( int i = 0 ; i < 4 ; i++) { String str = read.readLine(); for ( int j = 0 ; j < str.length(); j++) { tt = str.charAt(j) - 'A' ; if (tt >= 0 && tt <= 25 ) { a[tt]++; } } } int max = 0 ; for ( int i = 0 ; i < 26 ; i++) { if (a[i] > max) { max = a[i]; } } char [][] c = new char [max + 1 ][ 51 ]; for ( int i = 0 ; i < max + 1 ; i++) { Arrays.fill(c[i], ' ' ); } for ( int i = 0 ; i < 26 ; i++) { int h = a[i]; for ( int j = 0 ; j < h; j++) { c[max - 1 - j][i * 2 ] = '*' ; } } for ( int i = 0 ; i < 26 ; i++) { c[max][i * 2 ] = ( char ) ( 'A' + i); } for ( int i = 0 ; i < max + 1 ; i++) { String str = String.valueOf(c[i]); while (str.endsWith( " " )) { str = str.substring( 0 , str.length() - 1 ); } System.out.println(str); } } |
【推荐】还在用 ECharts 开发大屏?试试这款永久免费的开源 BI 工具!
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步