이번 글에서는 자바에서 문자열을 처리할 때 유용하게 사용할 수 있는 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() 메서드에 대해 살펴보았습니다. 감사합니다.
'알고리즘' 카테고리의 다른 글
[Java] 자주 사용하는 문자열 메서드 정리 및 예시 (0) | 2024.10.06 |
---|---|
[Java] 자바 PriorityQueue 우선순위큐 사용법 및 예제 (0) | 2022.05.14 |
[Java] 자바 Linked List 사용법 및 예제 (0) | 2022.04.27 |
최근댓글