CodeGym /행동 /C# SELF /문자열과 텍스트: string 타입, 문자열 다루기

문자열과 텍스트: string 타입, 문자열 다루기

C# SELF
레벨 2 , 레슨 2
사용 가능

1. string 타입 좀 더 자세히 알아보기

string 타입은 C#에서 제일 많이 쓰는 타입 중 하나야. 아마 진짜 제일 많이 쓸걸? 이 타입이 좋은 이유는, 변수에 텍스트를 저장할 수 있다는 거지. 그리고 intdouble 같은 타입이랑 다르게, string 객체에는 엄청 다양한 함수들이 있어서, 그걸로 재밌는 작업들을 할 수 있어.

게다가, C#의 모든 객체(진짜 전부 다)는 string 타입으로 변환될 수 있어. 좀 더 정확히 말하면, 모든 객체는 자기만의 텍스트(문자열) 표현을 반환하지. 앞으로도 이 타입은 계속 쓸 거니까(진짜 유용하고 재밌거든), 오늘은 그 기본만 먼저 알아보자.

string 타입 변수 만들기

string 타입은 문자열(텍스트) 저장하려고 만들어진 거야. 코드에서 텍스트를 저장할 수 있는 변수를 만들려면, 이렇게 하면 돼:

string 이름;
string 타입 변수 만들기

여기서 이름은 변수 이름이야.

예시:

명령어 설명
string name; name이라는 문자열 변수가 만들어져
string message; message라는 문자열 변수가 만들어져
string text; text라는 문자열 변수가 만들어져

intdouble 타입처럼, string 타입 변수도 여러 개 한 번에 만들 수 있어:

string 이름1, 이름2, 이름3;
string 타입 변수 여러 개 만들기

2. string 타입 변수에 값 넣기

string 타입 변수에 값을 넣으려면, 이렇게 하면 돼:

이름 = "값";
string 타입 변수에 값 넣기

여기서 첫 번째로 다른 점이 있어. string 타입의 값은 전부 텍스트(문자열)라서, 반드시 큰따옴표로 감싸야 해.

예시:

명령어 비고
string name = "아냐"; name 변수에 아냐라는 텍스트가 들어가
string city = "New York"; city 변수에 New York라는 텍스트가 들어가
string message = "Hello!"; message 변수에 Hello!라는 텍스트가 들어가

3. string 타입 변수 초기화

intdouble처럼, string 타입 변수도 만들 때 바로 값을 넣을 수 있어. 사실 C#의 모든 타입이 다 그래. 그래서 더 이상 이 얘기는 안 할게.

string 이름1 = "문자열1", 이름2 = "문자열2";
string 타입 변수 만들면서 값 넣기

변수 만들고 바로 값 넣는 예시

string name = "아냐", city = "New York", message = "Hello!";

값이 없는 변수는 쓸 수 없어

C# 컴파일러는 변수를 선언만 하고 값을 안 넣으면, 그 변수를 쓰려고 할 때 에러를 내.

이런 코드는 안 돼:

string name;
Console.WriteLine(name); // name 변수에 값이 없음. 프로그램이 컴파일 안 됨.
int a;
a++; // a 변수에 값이 없음. 프로그램이 컴파일 안 됨.
double x;
double y = x; // x 변수에 값이 없음. 프로그램이 컴파일 안 됨.

4. 문자열 합치기(컨캐터네이션)

C#에서 문자열로 할 수 있는 재밌고 쉬운 게 있는데, 바로 문자열을 합치는 거야. 이걸 컨캐터네이션이라고 해. 그냥 "문자열 합치기"라고도 하고, "문자열 더하기"라고도 해.

문자열 두 개를 합치려면 + 기호를 쓰면 돼. 진짜 간단해:

"값1" + "값2"
문자열 두 개 합치기

예시:

명령어 비고
string name = "아냐" + "아냐"; name에는 아냐아냐라는 문자열이 들어가
string city = "New York" + "아냐"; city에는 New York아냐라는 문자열이 들어가
string message = "Hello! " + "아냐"; message에는 Hello! 아냐라는 문자열이 들어가

그리고 당연히, 여러 개의 문자열을 한 번에 합칠 수도 있고, 문자열이랑 변수도 같이 합칠 수 있어.

예시:

string name = "아냐";                // name에는 "아냐"가 들어가
string city = "New York";           // city에는 "New York"이 들어가
string message = "Hello!" + city + name + city; // message에는 "Hello!New York아냐New York"이 들어가

5. 빈 문자열

마지막 예시를 보면, message 변수의 텍스트가 좀 읽기 힘들지? 왜냐면 띄어쓰기가 없어서 그래. 띄어쓰기 하나나 여러 개를 넣으려면, 그냥 코드에 띄어쓰기를 써서 큰따옴표로 감싸면 돼. 생각보다 쉬워:

" "
띄어쓰기 하나 들어있는 문자열

참고로, 따옴표 사이에 아무것도 안 쓰고(큰따옴표 두 개만 쓰면), 그건 "빈 문자열"이야:

""
빈 문자열

한편으론 있는 것 같지만, 화면에 출력하면 아무것도 안 나와. 그리고 다른 문자열이랑 합쳐도 아무 일도 안 생겨. 문자열에서 0 같은 존재지.

6. 문자열에서 특수문자 이스케이프

이미 알겠지만, 문자열은 큰따옴표로 감싸. 근데 문자열 안에 따옴표를 넣고 싶으면 어떻게 해야 할까? 그냥 따옴표를 쓰면, 컴파일러가 문자열 끝이라고 착각하지 않을까?

맞아. 착각해. 그래서 문자열 안에 따옴표를 넣으려면 \" 이렇게 두 글자를 써야 해. 코드는 이렇게 돼:

string quote = "그가 말했다: \"안녕하세요!\"";
Console.WriteLine(quote); // 그가 말했다: "안녕하세요!"

사실 이건 좀 더 복잡해. \ 기호는 문자열 안에서 특수(제어) 문자로 쓰여. 이걸로 줄바꿈, 탭 같은 "출력 안 되는 문자"를 쓸 수 있어. 그리고 \ 자체를 쓰려면 두 번 써야 해.

여기서 제일 많이 쓰는 4가지 조합:

표기 의미
\n 줄바꿈 (newline)
\t 탭 (들여쓰기)
\\ 그냥 \ 문자
\" 문자열 안에 따옴표

예시:

string multiline = "문자열 1\n문자열 2";
Console.WriteLine(multiline);

출력 결과:

// 문자열 1
// 문자열 2

7. 문자열 인터폴레이션 ($-문자열)

C#은 진짜 최신 언어라서, 변수 값을 문자열 안에 쉽게 넣을 수 있어. 이걸 인터폴레이션이라고 해 — 큰따옴표 앞에 $를 붙이고, 문자열 안에서 중괄호 {}를 쓰면 돼. 이건 이미 알고 있지?

근데, 중괄호 안에 식이나 함수 호출도 넣을 수 있다는 건 몰랐지? 예시:

string name = "올랴";
int birthYear = 1999;

string info = $"내 이름은 {name}, 나이는 {2025-birthYear}살이야.";
Console.WriteLine(info); 	// 내 이름은 올랴, 나이는 26살이야.

이렇게 하면 코드가 훨씬 읽기 쉽고, 실수(특히 괄호 실수)도 줄어들어. 인터폴레이션은 나중에 따로 더 배울 거지만, 간단한 경우엔 지금부터 써도 돼.

8. 문자열의 자체 함수들

string 타입에는 자체 함수(메서드)들이 있어. 진짜 많고, 덕분에 개발자들이 편하게 살 수 있지. 오늘은 그중에서 제일 쉬운 것들만 볼 거야. 예시:

함수 설명 예시 결과
str.Length 문자열 길이 "abc".Length → 3
str.ToUpper() 대문자로 바꾸기 "abc".ToUpper() → "ABC"
str.ToLower() 소문자로 바꾸기 "ABC".ToLower() → "abc"
str.Trim() 양쪽 공백 지우기 " x y ".Trim() → "x y"

문자열 함수 사용 예시

이런 함수들은 이렇게 써: 변수.함수(...)

문자열 길이 구하기:

string name = "안드레이";
int length = name.Length;
Console.WriteLine(length); // 6, 글자가 6개라서

문자열을 대문자/소문자로 바꾸기:

string original = "안녕";
Console.WriteLine(original.ToUpper()); // 안녕 (한글은 대소문자 없음)
Console.WriteLine(original.ToLower()); // 안녕

양쪽 공백 지우기(키보드 입력 받을 때 진짜 유용함):

string messy = "   hello   ";
Console.WriteLine(messy.Trim()); // "hello"

이런 함수들은 항상 새로운 문자열을 반환하고, 원래 문자열은 안 바뀌어.

코멘트
TO VIEW ALL COMMENTS OR TO MAKE A COMMENT,
GO TO FULL VERSION