다음을 통해 공유


문자열 및 문자열 리터럴

문자열은 값이 텍스트인 String 형식의 개체입니다. 내부적으로 텍스트는 Char 개체의 순차적 읽기 전용 컬렉션으로 저장됩니다. 문자열의 Length 속성은 유니코드 문자 수가 아니라 포함된 Char 개체의 수를 나타냅니다. 문자열의 개별 유니코드 코드 포인트에 액세스하려면 StringInfo 개체를 사용합니다.

string과 System.String 비교

C#에서 string 키워드는 String; 에 대한 별칭입니다. 따라서 Stringstring 동일합니다. 제공된 별칭 string를 사용하세요. 이 별칭은 using System;없이도 작동합니다. String 클래스는 문자열을 안전하게 만들고, 조작하고, 비교하기 위한 많은 메서드를 제공합니다. 또한 C# 언어는 일반적인 문자열 작업을 간소화하기 위해 일부 연산자를 오버로드합니다. 키워드에 대한 자세한 내용은 문자열참조하세요. 형식 및 해당 메서드에 대한 자세한 내용은 String참조하세요.

문자열 선언 및 초기화

다음 예제와 같이 다양한 방법으로 문자열을 선언하고 초기화할 수 있습니다.

// Declare without initializing.
string message1;

// Initialize to null.
string? message2 = null;

// Initialize as an empty string.
// Use the Empty constant instead of the literal "".
string message3 = System.String.Empty;

// Initialize with a regular string literal.
string oldPath = "c:\\Program Files\\Microsoft Visual Studio 8.0";

// Initialize with a verbatim string literal.
string newPath = @"c:\Program Files\Microsoft Visual Studio 9.0";

// Use System.String if you prefer.
System.String greeting = "Hello World!";

// In local variables (i.e. within a method body)
// you can use implicit typing.
var temp = "I'm still a strongly-typed System.String!";

// Use a const string to prevent 'message4' from
// being used to store another string value.
const string message4 = "You can't get rid of me!";

// Use the String constructor only when creating
// a string from a char*, char[], or sbyte*. See
// System.String documentation for details.
char[] letters = { 'A', 'B', 'C' };
string alphabet = new string(letters);

문자열 배열을 사용하여 문자열을 초기화하는 경우를 제외하고 연산자를 사용하여 문자열 개체를 만들지 않습니다.

Empty 상수 값을 사용하여 문자열을 초기화하여 문자열 길이가 0인 새 String 개체를 만듭니다. 길이가 0인 문자열의 문자열 리터럴 표현은 "". null대신 값으로 문자열을 초기화하면 발생할 가능성을 줄일 수 있습니다. 정적 IsNullOrEmpty(String) 메서드를 사용하여 문자열에 액세스하기 전에 문자열 값을 확인합니다.

문자열 불변성

문자열 개체는 변경할 수 없는 : 만든 후에는 변경할 수 없습니다. 문자열을 수정하는 것처럼 보이는 모든 String 메서드 및 C# 연산자는 실제로 새 문자열 개체의 결과를 반환합니다. 다음 예제에서는 s1s2 내용이 연결되어 단일 문자열을 구성하면 두 개의 원래 문자열이 수정되지 않습니다. += 연산자는 결합된 내용이 포함된 새 문자열을 만듭니다. 해당 새 개체는 변수 s1에 할당되고, 변수 s1에 할당되었던 원래 개체는 참조를 가진 다른 변수가 없으므로 가비지 수집을 위해 해제됩니다.

string s1 = "A string is more ";
string s2 = "than the sum of its chars.";

// Concatenate s1 and s2. This actually creates a new
// string object and stores it in s1, releasing the
// reference to the original object.
s1 += s2;

System.Console.WriteLine(s1);
// Output: A string is more than the sum of its chars.

문자열 "수정"은 실제로 새 문자열 만들기이므로 문자열에 대한 참조를 만들 때 주의해야 합니다. 문자열에 대한 참조를 만든 다음 원래 문자열을 "수정"하는 경우 참조는 문자열을 수정할 때 만들어진 새 개체 대신 원래 개체를 계속 가리킵니다. 다음 코드는 이 동작을 보여 줍니다.

string str1 = "Hello ";
string str2 = str1;
str1 += "World";

System.Console.WriteLine(str2);
//Output: Hello

원래 문자열에 대한 검색 및 바꾸기 작업과 같은 수정 사항을 기반으로 하는 새 문자열을 만드는 방법에 대한 자세한 내용은 문자열 내용을 수정하는 방법참조하세요.

따옴표 붙은 문자열 리터럴

따옴표로 묶은 문자열 리터럴은 동일한 줄에서 작은따옴표 문자(")로 시작하고 끝날 있습니다. 따옴표로 묶인 문자열 리터럴은 한 줄로 표현될 수 있으며 이스케이프 시퀀스를 포함하지 않는 문자열에 가장 적합합니다. 따옴표 붙은 문자열 리터럴은 다음 예제와 같이 이스케이프 문자를 포함해야 합니다.

string columns = "Column 1\tColumn 2\tColumn 3";
//Output: Column 1        Column 2        Column 3

string rows = "Row 1\r\nRow 2\r\nRow 3";
/* Output:
    Row 1
    Row 2
    Row 3
*/

string title = "\"The \u00C6olean Harp\", by Samuel Taylor Coleridge";
//Output: "The Æolean Harp", by Samuel Taylor Coleridge

직접 문자열 리터럴

축자 문자열 리터럴은 여러 줄 문자열, 백슬래시 문자가 포함된 문자열 또는 포함된 큰따옴표에 더 편리합니다. 원문 그대로 문자열은 문자열 텍스트의 일부로 새 줄 문자를 포함합니다. 큰따옴표를 사용하여 리터럴 문자열 안에 따옴표를 삽입하세요. 다음 예제에서는 축자 문자열에 대한 몇 가지 일반적인 용도를 보여 줍니다.

string title = "\"The \u00C6olean Harp\", by Samuel Taylor Coleridge";
//Output: "The Æolean Harp", by Samuel Taylor Coleridge

string filePath = @"C:\Users\scoleridge\Documents\";
//Output: C:\Users\scoleridge\Documents\

string text = @"My pensive SARA ! thy soft cheek reclined
    Thus on mine arm, most soothing sweet it is
    To sit beside our Cot,...";
/* Output:
My pensive SARA ! thy soft cheek reclined
    Thus on mine arm, most soothing sweet it is
    To sit beside our Cot,...
*/

string quote = @"Her name was ""Sara.""";
//Output: Her name was "Sara."

원시 문자열 리터럴

C# 11부터 원시 문자열 리터럴을 사용하여 여러 줄로 된 문자열을 더 쉽게 만들 수 있으며, 이스케이프 시퀀스가 필요한 문자도 사용할 수 있습니다. 원시 문자열 리터럴은 이스케이프 시퀀스를 전혀 사용할 필요가 없도록 합니다. 공백 서식을 포함하여 문자열을 출력에 표시할 방법을 작성할 수 있습니다. 원시 문자열 리터럴:

  • 세 개 이상의 큰따옴표 문자 시퀀스로 시작하고 끝납니다 ("""). 세 개 이상의 연속 문자를 사용하여 시퀀스를 시작하고 끝맺음으로써, 3개 이상의 반복된 따옴표 문자를 포함하는 문자열 리터럴을 지원할 수 있습니다.
  • 한 줄 원시 문자열 리터럴에는 같은 줄에 여는 따옴표 문자와 닫는 따옴표 문자를 반드시 포함해야 합니다.
  • 여러 줄 원시 문자열 리터럴에는 여는 따옴표 문자와 닫는 따옴표 문자가 각각 별도의 줄에 있어야 합니다.
  • 여러 줄 원시 문자열 리터럴에서 닫는 따옴표 왼쪽의 공백은 원시 문자열 리터럴의 모든 줄에서 제거됩니다.
  • 여러 줄 원시 문자열 리터럴에서 동일한 줄의 여는 따옴표 뒤에 오는 공백은 무시됩니다.
  • 여러 줄 원시 문자열 리터럴에서 여는 따옴표 다음에 있는 공백으로만 이루어진 행들은 문자열 리터럴에 포함됩니다.

다음 예제에서는 이러한 규칙을 보여 줍니다.

string singleLine = """Friends say "hello" as they pass by.""";
string multiLine = """
    "Hello World!" is typically the first program someone writes.
    """;
string embeddedXML = """
       <element attr = "content">
           <body style="normal">
               Here is the main text
           </body>
           <footer>
               Excerpts from "An amazing story"
           </footer>
       </element >
       """;
// The line "<element attr = "content">" starts in the first column.
// All whitespace left of that column is removed from the string.

string rawStringLiteralDelimiter = """"
    Raw string literals are delimited 
    by a string of at least three double quotes,
    like this: """
    """";

다음 예제에서는 이러한 규칙에 따라 보고된 컴파일러 오류를 보여 줍니다.

// CS8997: Unterminated raw string literal.
var multiLineStart = """This
    is the beginning of a string 
    """;

// CS9000: Raw string literal delimiter must be on its own line.
var multiLineEnd = """
    This is the beginning of a string """;

// CS8999: Line does not start with the same whitespace as the closing line
// of the raw string literal
var noOutdenting = """
    A line of text.
Trying to outdent the second line.
    """;

처음 두 예제는 여러 줄 원시 문자열 리터럴에서 여는 따옴표와 닫는 따옴표가 각각 별도의 줄에 있어야 하기 때문에 유효하지 않습니다. 세 번째 예제는 텍스트가 닫는 따옴표 시퀀스로부터 내어쓰기 되어 있기 때문에 유효하지 않습니다.

따옴표 붙은 문자열 리터럴 또는 축자 문자열 리터럴을 사용할 때 이스케이프 시퀀스가 필요한 문자를 포함하는 텍스트를 생성하는 경우 원시 문자열 리터럴을 고려해야 합니다. 원시 문자열 리터럴은 출력 텍스트와 더 유사하여 당신과 다른 사람들이 읽기 쉽습니다. 예를 들어 형식이 지정된 JSON 문자열을 포함하는 다음 코드를 고려합니다.

string jsonString = """
{
  "Date": "2019-08-01T00:00:00-07:00",
  "TemperatureCelsius": 25,
  "Summary": "Hot",
  "DatesAvailable": [
    "2019-08-01T00:00:00-07:00",
    "2019-08-02T00:00:00-07:00"
  ],
  "TemperatureRanges": {
    "Cold": {
      "High": 20,
      "Low": -10
    },
    "Hot": {
      "High": 60,
      "Low": 20
    }
            },
  "SummaryWords": [
    "Cool",
    "Windy",
    "Humid"
  ]
}
""";

문자열 이스케이프 시퀀스

이스케이프 시퀀스 캐릭터 이름 유니코드 인코딩
\' 작은따옴표 0x0027
\" 큰따옴표 0x0022
\\ 백슬래시 0x005C
\0 0x0000
\a 경고 0x0007
\b 백스페이스 0x0008
\e 탈출 0x001B
\f 폼 피드 0x000C
\n 새 줄 0x000A
\r 캐리지 리턴 0x000D
\t 가로 탭 0x0009
\v 세로 탭 0x000B
\u 유니코드 이스케이프 시퀀스(UTF-16) \uHHHH(범위: 0000 - FFFF; 예: \u00E7 = "ç")
\U 유니코드 이스케이프 시퀀스(UTF-32) \U00HHHHHH(range: 000000 - 10FFFF; 예: \U0001F47D = "👽")
\x 가변 길이를 제외하고 "\u"와 유사한 유니코드 이스케이프 시퀀스 \xH[H][H][H](범위: 0 - FFFF; 예: \x00E7 또는 \x0E7 또는 \xE7 = "ç")

경고

\x 이스케이프 시퀀스를 사용하고 4개 미만의 16진수 숫자를 지정하는 경우, 이스케이프 시퀀스를 즉시 따르는 문자가 유효한 16진수 문자(예: 0-9, A-F 및 a-f)라면, 그것들은 이스케이프 시퀀스의 일부로 해석됩니다. 예를 들어 \xA1 코드 포인트 U+00A1인 "\"를 생성합니다. 그러나 다음 문자가 "A" 또는 "a"인 경우, 이스케이프 시퀀스는 대신 \xA1A으로 해석되어 "ਚ"라는 문자를 생성합니다. 이 문자의 코드 포인트는 U+0A1A입니다. 이러한 경우 46진수(예: \x00A1)를 모두 지정하면 잘못된 해석을 방지할 수 있습니다.

메모

컴파일 시 문자 그대로의 문자열과 원시 문자열은 모두 동일한 이스케이프 시퀀스를 가진 일반 문자열로 변환됩니다. 따라서 디버거 검사 창에서 축자 또는 원시 문자열을 보면, 소스 코드의 축자 또는 원시 버전이 아니라 컴파일러에서 추가한 이스케이프 문자가 표시됩니다. 예를 들어, 축자 문자열 @"C:\files.txt"은 조사식 창에서 "C:\\files.txt"로 표시됩니다.

문자열 서식 지정

형식 문자열은 런타임에 내용이 동적으로 결정되는 문자열입니다. 형식 문자열은 보간된 식 또는 자리 표시자가 중괄호 안에 포함됨으로써 생성됩니다. 중괄호({...}) 내의 모든 항목은 런타임에 값으로 해석되어 형식화된 문자열로 출력됩니다. 형식 문자열을 만드는 방법에는 문자열 보간과 복합 서식의 두 가지가 있습니다.

문자열 보간

보간된 문자열 $ 특수 문자와 함께으로 선언합니다. 보간된 문자열은 중괄호로 보간된 식을 포함합니다. 문자열 보간을 처음으로 사용하는 경우 문자열 보간 - C# 대화형 자습서 참조하여 간략한 개요를 확인하세요.

문자열 보간을 사용하여 코드의 가독성 및 유지 관리 가능성을 향상시킵니다. 문자열 삽입은 String.Format 메서드와 동일한 결과를 얻으면서도 사용 편의성과 인라인 명확성을 개선합니다.

var jh = (firstName: "Jupiter", lastName: "Hammon", born: 1711, published: 1761);
Console.WriteLine($"{jh.firstName} {jh.lastName} was an African American poet born in {jh.born}.");
Console.WriteLine($"He was first published in {jh.published} at the age of {jh.published - jh.born}.");
Console.WriteLine($"He'd be over {Math.Round((2018d - jh.born) / 100d) * 100d} years old today.");

// Output:
// Jupiter Hammon was an African American poet born in 1711.
// He was first published in 1761 at the age of 50.
// He'd be over 300 years old today.

자리 표시자에 사용되는 모든 식이 상수 문자열인 경우 문자열 보간을 사용하여 상수 문자열을 초기화할 수 있습니다.

C# 11부터 원시 문자열 리터럴 문자열 보간과 결합할 수 있습니다. 세 개 이상의 연속 큰따옴표로 서식 문자열을 시작하고 끝냅니다. 출력 문자열에 { 또는 } 문자가 포함되어야 하는 경우, 보간 처리를 시작하고 종료하는 {} 문자 수를 지정하기 위해 추가 $ 문자를 사용할 수 있습니다. 더 적은 { 또는 } 문자의 모든 시퀀스가 출력에 포함됩니다. 다음 예제에서는 해당 기능을 사용하여 원점에서 점의 거리를 표시하고 중괄호 안에 점을 배치하는 방법을 보여 줍니다.

int X = 2;
int Y = 3;

var pointMessage = $$"""The point {{{X}}, {{Y}}} is {{Math.Sqrt(X * X + Y * Y)}} from the origin.""";

Console.WriteLine(pointMessage);
// Output:
// The point {2, 3} is 3.605551275463989 from the origin.

축자 문자열 보간

C#는 여러 줄에 걸쳐 축자 문자열 보간을 지원하며, 예를 들어 $@ 또는 @$ 구문을 사용합니다.

이스케이프 시퀀스를 문자 그대로 해석하려면 있는 그대로 문자열 리터럴을 사용합니다. 보간된 축자 문자열은 $ 문자와 @ 문자로 시작합니다. $@ 토큰을 순서대로 사용할 수 있습니다. $@"..."@$"..." 모두 유효한 보간된 축자 문자열입니다.

var jh = (firstName: "Jupiter", lastName: "Hammon", born: 1711, published: 1761);
Console.WriteLine($@"{jh.firstName} {jh.lastName}
    was an African American poet born in {jh.born}.");
Console.WriteLine(@$"He was first published in {jh.published}
at the age of {jh.published - jh.born}.");

// Output:
// Jupiter Hammon
//     was an African American poet born in 1711.
// He was first published in 1761
// at the age of 50.

복합 서식 지정

String.Format는 중괄호 안의 플레이스홀더(placeholder)를 활용해 형식 문자열을 만듭니다. 이 예제에서는 이전 샘플에서 사용된 문자열 보간 메서드와 유사한 출력을 생성합니다.

var pw = (firstName: "Phillis", lastName: "Wheatley", born: 1753, published: 1773);
Console.WriteLine("{0} {1} was an African American poet born in {2}.", pw.firstName, pw.lastName, pw.born);
Console.WriteLine("She was first published in {0} at the age of {1}.", pw.published, pw.published - pw.born);
Console.WriteLine("She'd be over {0} years old today.", Math.Round((2018d - pw.born) / 100d) * 100d);

// Output:
// Phillis Wheatley was an African American poet born in 1753.
// She was first published in 1773 at the age of 20.
// She'd be over 300 years old today.

.NET 형식의 서식 지정에 대한 자세한 내용은 .NET의 형식 지정을 참조하세요.

부분 문자열

부분 문자열은 문자열에 포함된 모든 문자 시퀀스입니다. Substring 메서드를 사용하여 원래 문자열의 일부에서 새 문자열을 만듭니다. IndexOf 메서드를 사용하여 하나 이상의 부분 문자열을 검색할 수 있습니다. Replace 메서드를 사용하여 지정된 부분 문자열의 모든 항목을 새 문자열로 바꿉니다. Substring 메서드와 마찬가지로 Replace 실제로 새 문자열을 반환하고 원래 문자열을 수정하지 않습니다. 자세한 내용은 문자열 검색하는 방법 및 문자열 내용수정하는 방법을 참조하세요.

string s3 = "Visual C# Express";
System.Console.WriteLine(s3.Substring(7, 2));
// Output: "C#"

System.Console.WriteLine(s3.Replace("C#", "Basic"));
// Output: "Visual Basic Express"

// Index values are zero-based
int index = s3.IndexOf("C");
// index = 7

개별 문자 액세스

다음 예제와 같이 인덱스 값과 함께 배열 표기법을 사용하여 개별 문자에 대한 읽기 전용 액세스를 얻을 수 있습니다.

string s5 = "Printing backwards";

for (int i = 0; i < s5.Length; i++)
{
    System.Console.Write(s5[s5.Length - i - 1]);
}
// Output: "sdrawkcab gnitnirP"

String 메서드가 문자열의 개별 문자를 수정해야 하는 기능을 제공하지 않는 경우 StringBuilder 개체를 사용하여 개별 문자를 "현재 위치"로 수정한 다음 StringBuilder 메서드를 사용하여 결과를 저장할 새 문자열을 만들 수 있습니다. 다음 예제에서는 원래 문자열을 특정 방식으로 수정한 다음 나중에 사용할 수 있도록 결과를 저장해야 한다고 가정합니다.

string question = "hOW DOES mICROSOFT wORD DEAL WITH THE cAPS lOCK KEY?";
System.Text.StringBuilder sb = new System.Text.StringBuilder(question);

for (int j = 0; j < sb.Length; j++)
{
    if (System.Char.IsLower(sb[j]) == true)
        sb[j] = System.Char.ToUpper(sb[j]);
    else if (System.Char.IsUpper(sb[j]) == true)
        sb[j] = System.Char.ToLower(sb[j]);
}
// Store the new string.
string corrected = sb.ToString();
System.Console.WriteLine(corrected);
// Output: How does Microsoft Word deal with the Caps Lock key?

Null 문자열 및 빈 문자열

빈 문자열은 문자가 0인 System.String 개체의 인스턴스입니다. 빈 문자열은 빈 텍스트 필드를 나타내기 위해 다양한 프로그래밍 시나리오에서 자주 사용됩니다. 메서드는 유효한 System.String 개체이므로 빈 문자열에서 호출할 수 있습니다. 빈 문자열은 다음과 같이 초기화됩니다.

string s = String.Empty;

반면 null 문자열은 System.String 개체의 인스턴스를 참조하지 않으며 null 문자열에서 메서드를 호출하려고 하면 NullReferenceException발생합니다. 그러나 연결 및 비교 작업에서 null 문자열을 다른 문자열과 함께 사용할 수 있습니다. 다음 예제에서는 null 문자열에 대한 참조로 인해 예외가 발생하는 경우와 발생하지 않는 몇 가지 사례를 보여 줍니다.

string str = "hello";
string? nullStr = null;
string emptyStr = String.Empty;

string tempStr = str + nullStr;
// Output of the following line: hello
Console.WriteLine(tempStr);

bool b = (emptyStr == nullStr);
// Output of the following line: False
Console.WriteLine(b);

// The following line creates a new empty string.
string newStr = emptyStr + nullStr;

// Null strings and empty strings behave differently. The following
// two lines display 0.
Console.WriteLine(emptyStr.Length);
Console.WriteLine(newStr.Length);
// The following line raises a NullReferenceException.
//Console.WriteLine(nullStr.Length);

// The null character can be displayed and counted, like other chars.
string s1 = "\x0" + "abc";
string s2 = "abc" + "\x0";
// Output of the following line: * abc*
Console.WriteLine("*" + s1 + "*");
// Output of the following line: *abc *
Console.WriteLine("*" + s2 + "*");
// Output of the following line: 4
Console.WriteLine(s2.Length);

빠른 문자열 생성을 위해 StringBuilder 사용

.NET의 문자열 작업은 고도로 최적화되어 있으며 대부분의 경우 성능에 큰 영향을 주지 않습니다. 그러나 수백 또는 수천 번 실행되는 타이트 루프와 같은 일부 시나리오에서는 문자열 작업이 성능에 영향을 줄 수 있습니다. StringBuilder 클래스는 프로그램에서 많은 문자열 조작을 수행하는 경우 더 나은 성능을 제공하는 문자열 버퍼를 만듭니다. 또한 StringBuilder 문자열을 사용하면 기본 제공 문자열 데이터 형식에서 지원하지 않는 개별 문자를 다시 할당할 수 있습니다. 예를 들어 이 코드는 새 문자열을 만들지 않고 문자열의 내용을 변경합니다.

System.Text.StringBuilder sb = new System.Text.StringBuilder("Rat: the ideal pet");
sb[0] = 'C';
System.Console.WriteLine(sb.ToString());
//Outputs Cat: the ideal pet

이 예제에서는 StringBuilder 개체를 사용하여 숫자 형식 집합에서 문자열을 만듭니다.

var sb = new StringBuilder();

// Create a string composed of numbers 0 - 9
for (int i = 0; i < 10; i++)
{
    sb.Append(i.ToString());
}
Console.WriteLine(sb);  // displays 0123456789

// Copy one character of the string (not possible with a System.String)
sb[0] = sb[9];

Console.WriteLine(sb);  // displays 9123456789

문자열, 확장 메서드 및 LINQ

String 형식은 IEnumerable<T>구현하므로 문자열의 Enumerable 클래스에 정의된 확장 메서드를 사용할 수 있습니다. 시각적 혼란을 방지하기 위해 이러한 메서드는 String 형식에 대한 IntelliSense에서 제외되지만 그럼에도 불구하고 사용할 수 있습니다. 문자열에서 LINQ 쿼리 식을 사용할 수도 있습니다. 자세한 내용은 LINQ 및 문자열을 참조하세요.

  • 문자열 내용을 수정하는 방법: 문자열을 변환하고 문자열의 내용을 수정하는 기술을 보여 줍니다.
  • 문자열을 비교하는 방법: 문자열의 서수 비교 및 문화권별 비교를 수행하는 방법을 보여 줍니다.
  • 여러 문자열을 연결하는 방법: 여러 문자열을 하나로 조인하는 다양한 방법을 보여 줍니다.
  • String.Split사용하여 문자열을 구문 분석하는 방법 : String.Split 메서드를 사용하여 문자열을 구문 분석하는 방법을 보여 주는 코드 예제를 포함합니다.
  • 문자열을 검색하는 방법: 문자열에서 특정 텍스트 또는 패턴에 대한 검색을 사용하는 방법을 설명합니다.
  • 문자열이숫자 값을 나타내는지 여부를 확인하는 방법: 문자열을 안전하게 구문 분석하여 유효한 숫자 값이 있는지 확인하는 방법을 보여 줍니다.
  • 문자열 보간: 문자열 서식을 지정하는 편리한 구문을 제공하는 문자열 보간 기능을 설명합니다.
  • 기본 문자열 작업: System.StringSystem.Text.StringBuilder 메서드를 사용하여 기본 문자열 작업을 수행하는 아티클에 대한 링크를 제공합니다.
  • 문자열 구문 분석: .NET 기본 형식의 문자열 표현을 해당 형식의 인스턴스로 변환하는 방법을 설명합니다.
  • .NET날짜 및 시간 문자열 구문 분석 : "01/24/2008"과 같은 문자열을 개체로 변환하는 방법을 보여 줍니다.
  • 문자열 비교: 문자열을 비교하는 방법에 대한 정보를 포함하고 C# 및 Visual Basic의 예제를 제공합니다.
  • StringBuilder 클래스사용: StringBuilder 클래스를 사용하여 동적 문자열 개체를 만들고 수정하는 방법을 설명합니다.
  • LINQ 및 문자열: LINQ 쿼리를 사용하여 다양한 문자열 작업을 수행하는 방법에 대한 정보를 제공합니다.