자바(Java)에서 문자열(String)을 문자 배열(char[])로 변환하는 방법은 크게 두 가지입니다. 하나는 문자열의 각 문자를 직접 배열에 복사하는 방법이고, 다른 하나는 toCharArray() 메서드를 활용하는 방법입니다.
1. 각 문자를 하나씩 복사하는 방법
변환할 문자열을 준비합니다.
문자열과 같은 길이의 빈 문자 배열을 생성합니다.
String 클래스의 charAt() 메서드는 지정된 위치의 문자를 반환합니다. 이 메서드를 이용해 문자열의 각 문자를 배열에 순서대로 복사합니다.
예제 코드
import java.util.Arrays;
import java.util.Scanner;
public class StringToCharArray {
public static void main(String args[]) {
Scanner sc = new Scanner(System.in);
System.out.println("Enter a String value: ");
String str = sc.next();
// 문자열 길이와 같은 빈 문자 배열 생성
char chArray[] = new char[str.length()];
// 문자열의 각 문자를 배열에 하나씩 복사
for(int i=0; i<str.length(); i++) {
chArray[i] = str.charAt(i);
}
System.out.println("Contents of the character array: ");
System.out.println(Arrays.toString(chArray));
}
}
실행 결과
Enter a String value: Tutorialspoint Contents of the character array: [T, u, t, o, r, i, a, l, s, p, o, i, n, t]
2. toCharArray() 메서드 사용하기
String 클래스의 toCharArray() 메서드는 현재 문자열 전체를 새로운 문자 배열로 변환하여 반환합니다. 이 메서드를 사용하면 반복문 없이 한 줄의 코드로 변환이 가능합니다.
변환할 문자열을 준비합니다.
toCharArray() 메서드를 호출하여 문자열을 문자 배열로 변환하고, 그 결과를 변수에 저장합니다.
예제 코드
import java.util.Arrays;
import java.util.Scanner;
public class ToCharArrayExample {
public static void main(String args[]) {
Scanner sc = new Scanner(System.in);
System.out.println("Enter a String value: ");
String str = sc.next();
// toCharArray() 메서드로 문자열을 문자 배열로 변환
char chArray[] = str.toCharArray();
System.out.println("Contents of the character array: ");
System.out.println(Arrays.toString(chArray));
}
}
실행 결과
Enter a String value: Tutorialspoint Contents of the character array: [T, u, t, o, r, i, a, l, s, p, o, i, n, t]
어떤 방법을 선택해야 할까?
두 방법 모두 동일한 결과를 얻을 수 있습니다. 하지만 toCharArray() 메서드는 코드가 간결하고 내부적으로 최적화되어 있어 성능 면에서도 유리하기 때문에, 일반적인 상황에서는 이 방식을 사용하는 것이 좋습니다. 반면 charAt()을 이용한 방법은 특정 조건에 따라 원하는 문자만 골라서 변환해야 하는 경우처럼 세밀한 제어가 필요할 때 유용합니다.