프로그래밍/java
[JAVA] 명품 자바 프로그래밍 6장 Open Challenge
승민아
2022. 5. 29. 23:02
소스 코드
import java.util.Scanner;
public class Extest{
static 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();
}
public static void main(String[] args) {
int cnt[]= new int[26];
String res = readString().toLowerCase();
for(int i=0;i<res.length();i++)
{
if(res.charAt(i)>='a'&&res.charAt(i)<='z')
cnt[(int)(res.charAt(i)-'a')]++;
}
for(int i=0;i<26;i++)
{
System.out.print((char)(i+'a'));
for(int j=0;j<cnt[i];j++)
System.out.print("-");
System.out.println();
}
}
}
아스키코드를 이용해서 풀었습니다.
readString() 함수로 반환되는 String을 .toLowerCase() 메소드를 통해 소문자로 전부 바꾼뒤
각 알파벳에 해당하는 cnt의 인덱스에 +1을 해주었습니다.
a=0, b=1, c=2, .... , z=25입니다.
출력 결과