이번 글에서는 자바에서 문자열을 처리할 때 유용하게 사용할 수 있는 toCharArray() 메서드에 대해 알아보겠습니다. 이 메서드는 알고리즘 문제나 문자열 관련 작업에서 자주 등장하는데요, 문자열을 문자 배열로 변환하여 각 문자를 쉽게 처리할 수 있게 해줍니다.

 

toCharArray()?

toCharArray()는 자바에서 String 클래스를 이용해 문자열을 문자 배열(char[])로 변환할 수 있게 해주는 메서드입니다. 문자열이 배열로 바뀌면 각 문자에 개별적으로 접근할 수 있어, 알고리즘 문제에서 문자열을 세부적으로 다뤄야 할 때 매우 유용합니다.

 

 

기본 사용법

먼저 기본적인 toCharArray() 메서드 사용 예제를 살펴보겠습니다.

String s = "hello";
char[] chars = s.toCharArray();
System.out.println(chars[1]);  // 출력: 'e'

 

위 코드에서는 "hello" 문자열을 문자 배열로 변환한 뒤, 배열의 두 번째 문자 'e'에 접근하는 모습을 볼 수 있습니다. 이처럼 문자열이 문자 배열로 변환되면, 배열 인덱스를 통해 각 문자를 손쉽게 다룰 수 있습니다.

 

대표 활용 케이스

자바의 toCharArray() 메서드는 다양한 상황에서 유용하게 사용할 수 있습니다. 문자열을 문자 단위로 처리해야 하는 경우나, 문자열을 분할해 처리하는 경우에 많이 활용됩니다.

 

1. 빈 문자열 처리

toCharArray()를 빈 문자열에 적용하면 빈 배열이 반환됩니다. 예외가 발생하지 않기 때문에 빈 문자열을 안전하게 처리할 수 있습니다.

String s = "";
char[] chars = s.toCharArray();
System.out.println(chars.length);  // 출력: 0 (빈 배열)

 

 

2. 문자열 뒤집기 (Reversing a String)

toCharArray()를 사용하면 문자열을 문자 배열로 변환한 후 배열을 뒤집을 수 있습니다. 알고리즘 문제에서 문자열을 뒤집어야 할 때 유용하게 활용됩니다.

String s = "hello";
char[] chars = s.toCharArray();
for (int i = 0; i < chars.length / 2; i++) {
    char temp = chars[i];
    chars[i] = chars[chars.length - 1 - i];
    chars[chars.length - 1 - i] = temp;
}
System.out.println(new String(chars));  // 출력: "olleh"

 toCharArray()로 문자열을 변환한 후 배열을 뒤집는 과정을 보여줍니다. 이처럼 문자 배열을 활용하면 문자열을 쉽게 조작할 수 있습니다.

 

3. 특정 문자의 빈도수 세기

특정 문자가 문자열에서 몇 번 등장하는지 세는 문제는 알고리즘에서 자주 등장합니다. toCharArray()를 이용해 문자 배열로 변환한 후, 반복문을 통해 각 문자를 체크하며 카운트를 증가시킬 수 있습니다.

String s = "banana";
char[] chars = s.toCharArray();
int count = 0;
for (char c : chars) {
    if (c == 'a') {
        count++;
    }
}
System.out.println("Number of 'a': " + count);  // 출력: "Number of 'a': 3"

 

문자열에서 특정 문자의 빈도수를 쉽게 구하는 방법을 보여줍니다. toCharArray()를 통해 문자 배열로 변환한 뒤 각 문자를 반복적으로 처리할 수 있습니다.

 

4. 대문자/소문자 변환 및 처리

toCharArray()를 통해 문자열의 개별 문자에 접근한 뒤, 이를 대문자/소문자로 변환하거나 다양한 로직을 적용할 수 있습니다.

String s = "HeLLo";
char[] chars = s.toCharArray();
for (int i = 0; i < chars.length; i++) {
    chars[i] = Character.toLowerCase(chars[i]);
}
System.out.println(new String(chars));  // 출력: "hello"

toCharArray()로 변환된 문자 배열을 소문자로 변환한 후 다시 문자열로 조합해 출력하고 있습니다.

 

 

알고리즘에서 toCharArray() 사용하기

 

알고리즘 문제에서는 문자열을 하나씩 처리해야 하는 경우가 많습니다. toCharArray()는 이럴 때 문자열을 쉽게 다루도록 도와줍니다.

 

예시 문제: 회문 검사

주어진 문자열이 회문(앞뒤가 똑같은 문자열)인지 확인하는 문제에서 toCharArray()를 활용할 수 있습니다.

public class Main {
    public static void main(String[] args) {
        String s = "racecar";
        System.out.println(isPalindrome(s));  // 출력: true
    }

    public static boolean isPalindrome(String s) {
        char[] chars = s.toCharArray();
        int start = 0;
        int end = chars.length - 1;
        while (start < end) {
            if (chars[start] != chars[end]) {
                return false;
            }
            start++;
            end--;
        }
        return true;
    }
}

 

위 코드에서는 toCharArray()로 변환된 문자 배열을 사용해 양 끝에서부터 문자를 비교하면서 회문 여부를 판별합니다.

 

이번 글에서는 자바에서 문자열을 문자 배열로 변환해 처리하는 toCharArray() 메서드에 대해 살펴보았습니다. 감사합니다.

반응형
  • 네이버 블러그 공유하기
  • 네이버 밴드에 공유하기
  • 페이스북 공유하기
  • 카카오스토리 공유하기