<영문자 히스토그램 만들기>
영문자로 구성된 텍스트를 입력받아 영문자 알파벳의 히스토그램을 만들어보자. 이 도전 문제는 문자열을 다루는 연습을 위한 것이다. 대문자와 소문자는 모두 같은 것으로 다룬다.
<소스코드>
import java.io.IOException;
import java.io.InputStreamReader;
public class AlphabetHistogramApp {
static int alphabet[] = null;
final static int alphabetNum = 26;
AlphabetHistogramApp(){
alphabet = new int[alphabetNum];
for(int i=0;i<alphabetNum;i++){
alphabet[i]=0; // 알파벳 개수 모두 0으로 초기화
}
}
public static void main(String[] args) {
// TODO Auto-generated method stub
new AlphabetHistogramApp();
InputStreamReader rd = new InputStreamReader(System.in);
int index; // 배열에 접근 할 인덱스
try{
while(true){
int c = rd.read(); // enter가 입력되면 13을 리턴한다.
if(c==13) //c는 입력된 키 값
break;
if(Character.isAlphabetic(c)){ // 알파벳인지 확인
if(c>='a'&&c<='z'){
c-=32;
}
index = c-'A';
alphabet[index]+=1;
}
}
System.out.println("히스토그램을 그립니다.");
for(int i=0;i<alphabetNum;i++){
System.out.print((char)(i+'A'));
for(int j=0;j<alphabet[i];j++)
System.out.print("-"); // 알파벳 개수만큼 출력
System.out.println();
}
}
catch(IOException e){
System.out.println("입력 오류 발생");
}
}
}
참고자료 : 생능출판 명품 JAVA Programming
github 주소 : https://github.com/ch1517/First_Step/tree/master/Chapter6/
반응형
'Programming Study > 명품자바프로그래밍' 카테고리의 다른 글
[명품자바프로그래밍] 7장 실습문제(2) (0) | 2018.09.26 |
---|---|
[명품자바프로그래밍] 7장 실습문제(1) (0) | 2018.09.26 |
[명품자바프로그래밍] 6장 실습문제(2) (0) | 2018.09.20 |
[명품자바프로그래밍] 6장 실습문제(1) (0) | 2018.09.20 |
[명품자바프로그래밍] 5장 실습문제(2) (2) | 2018.09.19 |
댓글