안 씀/java-예제&실습
[명품자바] 6장 오픈챌린지
unhyepnhj
2024. 6. 19. 13:52
영문자 히스토그램 만들기
텍스트를 키보드로 입력
알파벳이 아닌 문자는 제외하고 영문자 히스토그램으로
대문자와 소문자는 모두 같은 것으로 취급
세미콜론(;)만 있는 라인을 만나면 입력의 끝으로 간주
키보드로부터 텍스트를 입력받아 하나의 문자열로 리턴하는 코드는 다음 코드를 이용하라고 합니다
String readString() {
StringBuffer sb=new StringBuffer();
Scanner scanner=new Scanner(System.in);
while(true) {
String line=scanner.nextLine();
if(line.equals(";"))
break; //';'만 있는 라인이면 입력 종료
sb.append(line); //읽은 문자열을 스트링버퍼에 추가
}
return sb.toString(); //스트링버퍼의 문자열을 스트링으로 리턴
}
Histogram 클래스(만들라는 말은 없었는데 그냥 만들었습니다)
import java.util.*;
public class Histogram {
public String readString() {
StringBuffer sb=new StringBuffer();
Scanner scanner=new Scanner(System.in);
while(true) {
String line=scanner.nextLine();
if(line.equals(";"))
break; //';'만 있는 라인이면 입력 종료
sb.append(line); //읽은 문자열을 스트링버퍼에 추가
}
return sb.toString().toUpperCase(); //스트링버퍼의 문자열을 대문자 스트링으로 리턴
}
public void countAlphabet(String str) {
for(char c='A'; c<='Z'; c++) {
int count=0;
for(int i=0; i<str.length(); i++) {
if(str.charAt(i)==c) count++;
}
System.out.println(c+"-".repeat(count));
}
}
}
Main
public class Main {
public static void main(String[] args) {
System.out.println("영문 텍스트를 입력하고 세미콜론을 입력하세요.");
Histogram h=new Histogram();
String str=h.readString();
System.out.println();
System.out.println("히스토그램을 그립니다.");
h.countAlphabet(str);
}
}
>>실행
아델의 hello 입니다
좋은 노래죠