명품 자바 프로그래밍 - 6장 Open Challange 영문자 히스토그램Java2022. 12. 11. 11:59
Table of Contents
728x90
728x90
히스토그램 = 문장들중에서 해당 알파벳이 얼마나 나왔는지를 보여주는 지표
텍스트를 키보드로 입력받아 알파벳이 아닌 문자는 제외하고 영문자 히스토그램을 만들어보자.
대문자와 소문자는 모두 같은 것으로 간주하고,
세미콜론(;)만 있는 라인을 만나면 입력의 끝으로 해석한다.
--출력--
영문 텍스트를 입력하고 세미콜론을 입력하세요.
It's now or never, come hold me tight
Kiss me my darling, be mine tonight
Tomorrow will be too late
It's now or never, my love won't wait
When I first saw you, with your smile so tender
My heart was captured, my soul surrendered
I spent a lifetime, waiting for the right time
Now that your near, the time is here, at last
It's now or never, come hold me tight
Kiss me my darling, be mine tonight
Tomorrow will be too late
It's now or never, my love won't wait
;
히스토그램을 그립니다.
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
package challenge.Histogram;
import java.util.Scanner;
public class HistoGram {
String inputEng() {
StringBuffer stringBuffer=new StringBuffer();
Scanner sc = new Scanner(System.in);
// while문 안에 넣어서 종료조건=;로 지정한 후 만족할 때 까지 무한입력 가능하게 하기
while(true) {
String sentence = sc.nextLine();
if(sentence.length()==1 && sentence.contains(";")) {
System.out.println("종료");
break;
}stringBuffer.append(sentence); // 버퍼에 문자열 저장
}
// System.out.println(stringBuffer.toString()); 문자열 들어온지 확인해봤음 오 잘들어옴
return stringBuffer.toString(); // 리턴값을 가져나와 다른메서드에 활용
}
void checkEng(String engsentence){
int a=65; int b=97; // 아스키코드 A,a 번호
char start=65;
String line = "-";
boolean bl=true;
while(bl) {
System.out.print(start);
for(int i=0; i<engsentence.length(); i++) {
char c = engsentence.charAt(i);
if(c==a || c==b) {
System.out.print(line);
}
}
System.out.println();
a++; b++; start++;
if(start>90) { // Z가 넘어가도 계속 출력되는거 막기
break;
}
}
}
}
package challenge.Histogram;
import java.util.Scanner;
public class HistogramMain {
public static void main(String[] args) {
System.out.println("영문 텍스트를 입력하세요");
System.out.println("종료를 원할경우 세미콜론(;)을 입력해 주세요");
HistoGram histoGram1 = new HistoGram();
String input = histoGram1.inputEng();
histoGram1.checkEng(input);
}
}
아직 메서드 세분화에 엄청 미숙한 것 같다
728x90
300x250
@mag1c :: 꾸준히 재밌게
2023.04 ~ 백엔드 개발자의 기록
포스팅이 좋았다면 "좋아요❤️" 또는 "구독👍🏻" 해주세요!