Java에서 Character와 String은 모두 텍스트 데이터를 다루는 데 사용되지만, 그 특성과 용도에 있어 중요한 차이점이 있습니다. 이 글에서는 두 타입의 주요 차이점을 자세히 살펴보고, 각각의 사용 사례와 예시를 통해 이해를 돕고자 합니다.
Character는 Java의 기본 데이터 타입인 char의 래퍼 클래스입니다.예시:
char c = 'A';
Character ch = new Character('B');
Character ch2 = 'C'; // 자동 박싱
String은 문자의 시퀀스(연속)를 나타내는 클래스입니다.char 배열을 사용하여 문자들을 저장합니다.예시:
String str1 = "Hello";
String str2 = new String("World");
char는 2바이트를 사용하며, Character 객체는 추가적인 오버헤드가 있습니다.예시:
Character ch = 'A';
System.out.println(Character.isLetter(ch)); // true
System.out.println(Character.isDigit(ch)); // false
System.out.println(Character.toLowerCase(ch)); // 'a'
예시:
String str = "Hello, World!";
System.out.println(str.length()); // 13
System.out.println(str.substring(0, 5)); // "Hello"
System.out.println(str.toLowerCase()); // "hello, world!"
Character 객체 자체는 불변이지만, 새로운 값을 할당할 수 있습니다.예시:
Character ch = 'A';
ch = 'B'; // 새로운 Character 객체가 생성됨
예시:
String str = "Hello";
str = str + " World"; // 새로운 String 객체가 생성됨
char를 사용할 때 박싱/언박싱 오버헤드가 없어 더 효율적입니다.StringBuilder나 StringBuffer를 사용하는 것이 더 효율적입니다.예시:
// 비효율적인 방법
String result = "";
for (int i = 0; i < 1000; i++) {
result += "a";
}
// 효율적인 방법
StringBuilder sb = new StringBuilder();
for (int i = 0; i < 1000; i++) {
sb.append("a");
}
String result = sb.toString();
Character와 String은 각각 고유한 특성과 용도를 가지고 있습니다. Character는 단일 문자를 다룰 때 효율적이며, String은 텍스트 데이터를 처리하는 데 더 적합합니다. 프로그래밍 시 데이터의 특성과 처리 방식을 고려하여 적절한 타입을 선택하는 것이 중요합니다. 두 타입의 특성을 잘 이해하고 활용함으로써 더 효율적이고 가독성 높은 코드를 작성할 수 있습니다.