본문 바로가기
IT/Java

Java (문자열 입력 히스토그램)

by hjshims 2021. 5. 10.

원하는 문자열을 입력 받아 그 문자열의 첫글자에 해당하는 배열에 히스토그램을 출력하는 프로그램

 

package p0510;

import java.util.Scanner;

public class StringHistogram {

	public static void main(String[] args) {
		// TODO Auto-generated method stub
		Scanner scan = new Scanner(System.in);
		String[] histogram = new String[26];
		int[] cnt = new int[26]; // 히스토그램 데이터를 카운트 하기 위한 배열
		int i, j;

		while (true) {
			System.out.println("영문자열 26개를 입력합니다.[종료는 0입력] ");

			for (i = 0; i < cnt.length; i++) {
				String alph = scan.nextLine(); // 길이 갯수 만큼 입력

				if (alph.equals("0")) { // 입력한 값이 0이면 종료
					break;
				}

				histogram[i] = alph; // 입력한 값을 histogram 배열에 저장
				String upper = histogram[i].toUpperCase(); // 입력한 값을 바로 대문자로 변환
				char ch = upper.charAt(0); // 문자열을 입력했을 때 첫번째 값만 저장

				if (ch >= 65 && ch <= 'Z') {	//입력한 값이 A~Z범위안에 있으면 카운트 1증가
					int minus = ch - 'A';		//입력한 값이 인덱스[]에 저장되어야하니까 입력한 값을 저장할 변수 선언 
					cnt[minus]++; // 출력할 "-"의 갯수 카운트
				} else {
					continue;
				}
			}

			for (i = 0; i < cnt.length; i++) {
				System.out.print((char) (65 + i)); // 대문자출력
				System.out.print((char) (97 + i)); // 소문자출력

				for (j = 0; j < cnt[i]; j++) { // 입력한 정수의 갯수만큼만 "-" 출력
					System.out.print("-");
				}
				System.out.println();
			}
		}

	}

}

 

<출력결과>