내보내기(0) 인쇄
모두 확장
이 문서는 기계로 번역한 것입니다. 원본 텍스트를 보려면 포인터를 문서의 문장 위로 올리십시오. 추가 정보
번역
원본

string(C# 참조)

string 형식은 0개 이상의 유니코드 문자 시퀀스를 나타냅니다. string 은 .NET Framework의 String에 대한 별칭입니다.

string 은 참조 형식이지만 같음 연산자(==!=)는 참조가 아니라 string 개체의 값을 비교하도록 정의되어 있으므로 좀 더 쉽게 문자열을 비교할 수 있습니다. 예를 들면 다음과 같습니다.

string a = "hello";
string b = "h";
// Append to contents of 'b'
b += "ello";
Console.WriteLine(a == b);
Console.WriteLine((object)a == (object)b);

이 코드는 "True"를 표시한 다음 "False"를 표시하는데, 이는 문자열의 내용이 동일하지만 ab는 동일한 문자열 인스턴스를 가리키지 않기 때문입니다.

+ 연산자는 문자열을 연결합니다.

string a = "good " + "morning";

이 코드는 "good morning"이라는 내용이 포함된 문자열 개체를 만듭니다.

문자열은 변경할 수 없습니다. 즉, 구문을 보면 문자열 개체를 만든 후 이 개체의 내용을 변경할 수 있는 것처럼 보이지만 이는 가능하지 않습니다. 예를 들어, 다음 코드를 작성하면 컴파일러에서는 새 문자 시퀀스가 있는 새 문자열 개체를 만들며 새 개체에 b가 할당됩니다. 문자열 "h"는 가비지 수집의 대상입니다.

string b = "h";
b += "ello";

[] 연산자는 string의 개별 문자에 읽기 전용으로 액세스하는 데 사용할 수 있습니다.

string str = "test";
char x = str[2];  // x = 's';

문자열 리터럴은 string 형식이며 따옴표 붙은 형식과 @-따옴표 붙은 형식의 두 가지 형태로 작성할 수 있습니다. 따옴표 붙은 문자열 리터럴은 다음과 같이 큰따옴표(")로 묶습니다.

"good morning"  // a string literal

문자열 리터럴에는 다음과 같이 이스케이프 시퀀스를 포함한 모든 문자 리터럴이 포함될 수 있습니다. 다음 예제에서는 백슬래시에 이스케이프 시퀀스 \\, 글자 f에 \u0066, 줄 바꿈 문자에 \n을 사용합니다.

string a = "\\\u0066\n";
Console.WriteLine(a);
참고참고

이스케이프 코드 \udddd는 유니코드 문자 U+dddd를 나타냅니다. 여기서 dddd는 네 자리 숫자입니다. \Udddddddd와 같은 8자리 유니코드 이스케이프 코드도 사용할 수 있습니다.

약어 문자열 리터럴은 @로 시작하며 큰따옴표로 묶습니다. 예를 들면 다음과 같습니다.

@"good morning"  // a string literal

약어 문자열의 이점은 이스케이프 시퀀스를 처리하지 않기 때문에 다음과 같이 정규화된 파일 이름 등을 쉽게 작성할 수 있다는 것입니다.

@"c:\Docs\Source\a.txt"  // rather than "c:\\Docs\\Source\\a.txt"

@-따옴표 붙은 문자열에 큰따옴표를 포함시키려면 다음과 같이 큰따옴표를 두 번 입력합니다.

@"""Ahoy!"" cried the captain." // "Ahoy!" cried the captain.

또한 @ 기호는 C# 키워드인 참조된 식별자(/reference)를 사용하는 데 유용합니다.

C#의 문자열에 대한 자세한 내용은 문자열(C# 프로그래밍 가이드)을 참조하십시오.


class SimpleStringTest 
{
   static void Main()
   {
      string a = "\u0068ello ";
      string b = "world";
      Console.WriteLine( a + b );
      Console.WriteLine( a + b == "Hello World" ); // == performs a case-sensitive comparison
   }
}
/* Output:
    hello world
    False
 */


자세한 내용은 C# 언어 사양을 참조하십시오. 이 언어 사양은 C# 구문 및 사용법에 대한 신뢰할 수 있는 소스입니다.

커뮤니티 추가 항목

추가
Microsoft는 MSDN 웹 사이트에 대한 귀하의 의견을 이해하기 위해 온라인 설문 조사를 진행하고 있습니다. 참여하도록 선택하시면 MSDN 웹 사이트에서 나가실 때 온라인 설문 조사가 표시됩니다.

참여하시겠습니까?
표시:
© 2014 Microsoft