문자 (Character)

단일 문자를 표현하는 데이터 타입이다. 각 프로그래밍 언어별로 character의 구현과 사용 방식이 다소 다르다.

Character는 단일 문자를 나타내는 데이터 타입으로, 일반적으로 문자, 숫자, 특수 문자, 공백 등을 포함할 수 있다.

특징

  1. 고정 크기: 대부분의 언어에서 character는 고정된 메모리 크기를 가진다.
  2. 유니코드 지원: 많은 현대 프로그래밍 언어에서 유니코드 문자를 지원한다.
  3. 정수형과의 호환성: 대부분의 언어에서 character는 정수형으로 변환 가능하다.

특성

  1. 불변성: 많은 언어에서 character는 불변(immutable) 타입이다.
  2. 순서성: ASCII 또는 유니코드 값을 기반으로 순서를 가진다.
  3. 단일 값: 하나의 문자만을 저장할 수 있다.

연산 종류 및 설명

  1. 비교 연산: 문자 간 대소 비교가 가능하다.
  2. 산술 연산: 정수형으로 변환하여 산술 연산이 가능하다.
  3. 형변환: 정수형이나 문자열로의 변환이 가능하다.

실제 활용 사례 및 설명

Java

Java에서는 ‘char’ 키워드를 사용하여 character를 선언한다.

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
char c = 'A';
System.out.println(c); // 출력: A
System.out.println((int)c); // 출력: 65 (ASCII 값)

// 유니코드 사용
char unicodeChar = '\u0041'; // 'A'의 유니코드
System.out.println(unicodeChar); // 출력: A

// 문자 비교
System.out.println('A' < 'B'); // 출력: true

JavaScript

JavaScript에서는 별도의 character 타입이 없으며, 길이가 1인 문자열로 표현한다.

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
let c = 'A';
console.log(c); // 출력: A
console.log(c.charCodeAt(0)); // 출력: 65 (ASCII 값)

// 유니코드 사용
let unicodeChar = '\u0041'; // 'A'의 유니코드
console.log(unicodeChar); // 출력: A

// 문자 비교
console.log('A' < 'B'); // 출력: true

Python

Python도 JavaScript와 마찬가지로 별도의 character 타입이 없으며, 길이가 1인 문자열로 표현한다.

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
c = 'A'
print(c)  # 출력: A
print(ord(c))  # 출력: 65 (ASCII 값)

# 유니코드 사용
unicode_char = '\u0041'  # 'A'의 유니코드
print(unicode_char)  # 출력: A

# 문자 비교
print('A' < 'B')  # 출력: True

문자열 (String)

String은 문자들의 배열 또는 시퀀스로, 텍스트 데이터를 표현하고 조작하는 데 사용된다.

특징

  1. 불변성: 한번 생성된 문자열은 변경할 수 없다.
  2. 인덱싱: 개별 문자에 인덱스로 접근할 수 있다.
  3. 연결 가능: 다른 문자열과 연결하여 새로운 문자열을 만들 수 있다.
  4. 길이: 문자열의 길이를 쉽게 얻을 수 있다.

특성

  1. 유니코드 지원: 다양한 언어와 특수 문자를 표현할 수 있다.
  2. 메모리 효율성: 많은 언어에서 문자열 풀(string pool)을 사용하여 메모리를 효율적으로 관리한다.
  3. 비교 가능: 문자열 간의 사전식 순서 비교가 가능하다.

연산 종류 및 설명

  1. 연결(Concatenation): 두 문자열을 합쳐 새로운 문자열을 만든다.
  2. 부분 문자열 추출(Substring): 문자열의 일부를 추출한다.
  3. 검색(Search): 특정 문자나 부분 문자열의 위치를 찾는다.
  4. 대소문자 변환: 문자열의 대소문자를 변경한다.
  5. 분할(Split): 문자열을 특정 구분자를 기준으로 나눈다.

실제 활용 사례 및 설명

Java

1
2
3
4
5
String greeting = "Hello, World!";
System.out.println(greeting.length()); // 13
System.out.println(greeting.substring(0, 5)); // "Hello"
System.out.println(greeting.toLowerCase()); // "hello, world!"
String[] parts = greeting.split(", "); // ["Hello", "World!"]

JavaScript

1
2
3
4
5
let message = "JavaScript is awesome";
console.log(message.length); // 23
console.log(message.indexOf("is")); // 11
console.log(message.replace("awesome", "great")); // "JavaScript is great"
console.log(message.toUpperCase()); // "JAVASCRIPT IS AWESOME"

Python

1
2
3
4
5
6
text = "Python programming"
print(len(text))  # 19
print(text[0:6])  # "Python"
print(text.upper())  # "PYTHON PROGRAMMING"
print(" ".join(["Hello", "Python"]))  # "Hello Python"
print(text.startswith("Py"))  # True

Character와 String 비교 분석

특성CharacterString
정의단일 문자문자들의 시퀀스
길이항상 10 이상
불변성대부분 불변대부분 불변
메모리일반적으로 고정 크기길이에 따라 가변적
연산제한적 (비교, 변환)다양함 (연결, 검색, 변환 등)
인덱싱해당 없음가능
반복 가능불가능가능
유니코드 지원대부분 지원지원
주요 용도단일 문자 표현텍스트 데이터 처리

참고 및 출처