Java

Java | 'a'란 무엇인가?

이진유진 2024. 12. 9. 19:59
반응형

Java를 배우다 보면 문자 리터럴('a')과 문자열 리터럴("a")의 차이점을 궁금해할 수 있습니다. 이번 글에서는 'a'의 의미와 특징, 활용 방법에 대해 알아보겠습니다.


1. 'a'의 정의

Java에서 'a'는 문자 리터럴을 의미하며, 하나의 문자만을 표현하는 char 타입으로 처리됩니다. 문자 리터럴은 항상 작은따옴표(')로 감싸야 합니다.


2. 'a'의 주요 특징

  1. 유니코드 값
    • 모든 문자는 유니코드 값을 가지고 있으며, 'a'의 유니코드 값은 97입니다.
    • 예를 들어:
      • 'a': 97
      • 'b': 98
      • 'z': 122
  2. char 타입
    • 'a'는 char 타입입니다. 이는 단 하나의 문자를 표현합니다.
    • 문자열과는 다릅니다. 문자열은 String 타입이며, "a"는 하나의 문자로 구성된 문자열입니다.
  3. 숫자처럼 연산 가능
    • char 타입은 숫자로 취급될 수 있어 산술 연산이 가능합니다.
char c = 'a';
System.out.println(c + 1); // 출력: 98 ('a'의 유니코드 값 97 + 1)
System.out.println((char) (c + 1)); // 출력: 'b' (다음 문자)
  1. 배열 및 조건문에서 활용
    • 'a'를 활용해 배열의 인덱스를 계산하거나 조건문에서 알파벳 범위를 확인할 수 있습니다.
char c = 'b';
int index = c - 'a'; // 'b' - 'a' = 98 - 97 = 1
System.out.println(index); // 출력: 1

3. 'a'와 "a"의 차이

타입 char String
표현 가능 문자 수 1개 여러 문자
크기 2바이트 문자 개수에 따라 가변적
사용 예시 char c = 'a'; String s = "a";

4. 예제 코드

public class Main {
    public static void main(String[] args) {
        // 'a'는 char 타입
        char charA = 'a'; 

        // "a"는 String 타입
        String stringA = "a";

        // char의 유니코드 값 출력
        System.out.println((int) charA); // 출력: 97

        // 문자열은 숫자처럼 사용 불가
        // System.out.println((int) stringA); // 컴파일 에러

        // char 연산 예제
        char nextChar = (char) (charA + 1); // 'a' 다음 문자
        System.out.println(nextChar); // 출력: b
    }
}

5. 활용 사례

알파벳 개수 세기 문제에서 'a'와 char 타입의 특성을 활용할 수 있습니다.

 

예를 들어,

 

문제: 단어가 주어졌을 때 각 알파벳이 몇 번 등장했는지 세는 프로그램을 작성하세요.

import java.util.Scanner;

public class Main {
    public static void main(String[] args) {
        Scanner scanner = new Scanner(System.in);
        String word = scanner.nextLine();

        int[] alphabetCount = new int[26]; // a~z 카운트용 배열

        for (int i = 0; i < word.length(); i++) {
            char c = word.charAt(i);
            alphabetCount[c - 'a']++; // 알파벳 인덱스 계산
        }

        for (int count : alphabetCount) {
            System.out.print(count + " "); // 공백으로 결과 출력
        }
    }
}
입력 :
baekjoon

출력 : 
1 1 0 0 1 0 0 0 0 1 1 0 0 1 2 0 0 0 0 0 0 0 0 0 0 0
반응형