C# - 문자와 문자열 및 논리타입

2025. 6. 14. 18:45Programming Language/C#

반응형

문자 타입

문자 타입은 자바와 같은 언어들은 아스키 코드를 사용하는데 반면 C#의 경우는 유니코드(UTF-16)를 사용하기에 영어, 한글, 이모지등 거의 모든 언어에 대해서 표현이 가능하다.

단, 이모지나 확장 문자의 경우는 2개의 char로 표현되기도 한다.

또한 보통 char형은 1바이트를 가지고 있지만 C#에서는 2바이트 크기를 가진다는 점이 다른 점이다.

 

문자열

C#에서 문자열은 string 키워드 또는 System.String 타입으로 사용되며 문자(char)들의 불변(immutable)한 시퀀스로 생성된 이후로는 변경할 수 없다.

이 또한 char형을 내부적으로 사용하기에 UTF-16 인코딩을 사용한다.

참조형으로 힙 공간에 저장되게 된다.

 

문자열에서의 주된 내용을 보자면 

 

1. 문자열의 길이를 구하는 str.Length

 

2. string은 내부적으로 char[]의 형태를 띄기에 index를 사용해 문자에 접근하는것도 가능

 

3. 문자열 결합 - + 연산자 / String의 정적함수 Concat(), StringBuilder클래스

# + 연산자 / String의 정적함수 Concat()

여기서 + 연산자도 결국 내부적으로는 Concat이나 StringBuilder를 호출한다.

 

# StringBuilder클래스

 

C#에서 string은 불변 타입이기에 생성한 string 타입의 변수의 값을 변경하면 변수의 값이 변경되는게 아니라 새로운 객체를 생성해서 저장한다.

그렇기에 변수의 값이 자주 변경된다면 string이 아니라 StringBuilder를 사용하는것을 권장한다.

 

StringBuilder에 있는 추가적으로 trim이나 uppercase와 같은 함수들은 사용할때 알아보도록 하자.

 

4. 문자열 분할 - str.Split("특정문자")

 

5. 문자열 일부 출력 - str.Substring(시작index, 종료index)

 

 

6. 문자열 비교 - 문자열을 비교하는 메서드 .Equals() - originStr.Equals(Str);

 

7. 문자열 보간 $

문자열 보간은 문자열 사이에 변수나 표현식을 직접 삽입 할 수 있도록 해주는 방법이다

 

8. 문자열을 묶어주는 메서드 - .Format()

 

특수문자열 리터럴

다른 언어들도 비슷하겠지만 C#에도 특수문자를 출력하기 위한 이스케이프 문자를 사용하기 위한 리터럴이 존재한다

 

1. 이스케이프 문자 \

 

 

2. Verbatim 문자열 @ - \와 공백들을 그대로 저장해줌

자바스크립트 코드 블록, SQL 문 등 여러 줄에 걸쳐 작성할 내용은 @ 기호를 앞에 붙여 문자열 하나로 인식하게 할 수 있게 해주는 역할을 한다.

 

논리타입

논리 데이터 타입인 true와 false를 저장하기 위해서는 bool이라는 타입을 사용한다.

 

이 또한 다른 언어와 차이점은 없다.

표출은 대문자 True/False로 나오나 입력은 true와 false로 한다는 점...정도..? 

 

# 표준입력 메서드 - System.Console.ReadLine()

이것도 뭐 따로 볼만한건 없고..그냥 다른 언어에서 scanf, cin, scanner 등과 비슷한 역할이라고 보면 될듯 싶다..

 

반응형

'Programming Language > C#' 카테고리의 다른 글

C# - 연산자  (0) 2025.06.15
C# - 형변환과 리터럴  (0) 2025.06.14
C# - 숫자 타입  (0) 2025.06.14
C# - Hello World  (0) 2025.06.14
C# - 시작  (0) 2025.06.09