알파벳 소문자로 된 문자를 입력 받고 알파벳이 몇번 나왔는지 출력.
나오지 않은 알파벳은 출력하지 않는다. 출력순서는 a부터 z까지
import java.util.Scanner;
public class 문제4 {
public static void main(String[] args) {
Scanner sc = new Scanner(System.in);
String input = sc.nextLine();
sc.close();
//알파벳 횟수 배열 작성
int[] count = new int[26];
//charAt: 입력한 sc의 알파벳 문자를 한개씩 모두 출력
for(int i = 0; i < input.length(); i++){
char c = input.charAt(i);
//해당 문자가 소문자의 a부터 z일 경우 count 배열의 index 증가 시킴
if(c >= 'a' && c <= 'z'){
count[c - 'a']++;
}
}
//26번의 반복을 통해 알파벳 출력
for(int i = 0; i < 26; i++){
//count[i]: ㅊ알파벳 횟수
//입력한 값의 저장한 배열이 값이 있을 경우 알파벳 출력
if(count[i] > 0){
//i 값을 알파벳의 ASCII 값으로 변환하여 문자로 출력
char alphabet = (char)(i + 'a');
System.out.println(alphabet + ":" + count[i]);
}
}
}
}
먼저, 코드의 실행을 위해 java.util.Scanner를 import하고, Scanner 객체를 생성합니다. 이 객체는 사용자로부터 입력을 받기 위해 사용됩니다. 그리고 System.out.print를 사용하여 "알파벳을 입력하세요: "라는 메시지를 출력합니다.
사용자가 입력한 값을 scanner.nextLine()을 사용하여 문자열로 입력받고, 입력이 완료되었으므로 scanner.close()를 호출하여 Scanner 객체를 닫습니다.
다음으로, 알파벳이 나타나는 횟수를 저장하기 위한 크기가 26인 count 배열을 생성합니다. 배열의 각 인덱스는 알파벳의 ASCII 값에서 'a'의 ASCII 값을 뺀 값으로 계산됩니다.
for 루프를 사용하여 입력받은 문자열을 한 문자씩 순회합니다. 문자열의 각 문자를 charAt 메서드를 사용하여 가져온 후, 해당 문자가 소문자 알파벳 범위인지 확인합니다. 소문자 알파벳 범위에 속하는 경우에만 count 배열의 해당 인덱스 값을 증가시킵니다.
알파벳의 횟수를 출력하기 위해 다시 한 번 for 루프를 사용합니다. 26번의 반복을 통해 각 알파벳에 대해 출력을 수행합니다. 만약 count[i] 값이 0보다 큰 경우에만 해당 알파벳을 출력합니다. count[i]는 해당 알파벳의 횟수를 의미하며, i 값을 알파벳의 ASCII 값으로 변환하여 문자로 출력합니다. 출력 형식은 "알파벳: 횟수"로 나타내어집니다.
이렇게 작성된 코드는 사용자로부터 알파벳 문자열을 입력받고, 각 알파벳이 나타나는 횟수를 계산하여 출력하는 기능을 수행합니다.