0Pricing
C# Academy · 강의

배열과 문자열의 범위

배열, 스팬 및 부분 문자열을 슬라이스합니다.

배열과 문자열의 범위은(는) CoddyKit의 무료 C# Academy 강의입니다. 이것은 4개 중 3번째 강의입니다. 아래에서 전체 강의를 무료로 읽을 수 있으며, 내장 코드 에디터와 24/7 AI 튜터와 함께 브라우저에서 직접 실습할 수 있습니다. 이 강의는 C# Academy 학습 경로의 일부이며, 진행 상황이 웹과 CoddyKit 앱에 동기화됩니다. C# Academy 강의에는 총 4개의 강의가 포함되어 있습니다.

배열 슬라이싱

범위의 가장 일반적인 사용 방법은 배열을 슬라이싱하는 것입니다. array[1..3]은 선택한 요소를 포함하는 새 배열을 반환합니다.

using System;

int[] data = { 10, 20, 30, 40, 50 };
int[] middle = data[1..3];
Console.WriteLine(string.Join(",", middle)); // 20,30

배열 슬라이스는 복사본입니다

배열을 범위로 슬라이스하면 새 배열을 할당하고 요소를 복사합니다. 슬라이스를 변경해도 원본에는 영향을 주지 않습니다.

using System;

int[] original = { 1, 2, 3, 4 };
int[] slice = original[0..2];
slice[0] = 99;
Console.WriteLine(original[0]); // 1 (unchanged)
Console.WriteLine(slice[0]);    // 99

범위로 부분 문자열 만들기

string 인덱서는 Range를 지원하므로 오프셋과 길이를 지정해 Substring을 호출하지 않고도 부분 문자열을 얻을 수 있습니다.

using System;

string text = "Hello, World";
string hello = text[0..5];
Console.WriteLine(hello); // Hello

끝 기준 문자열 슬라이스

범위와 ^를 결합하면 문자열의 끝부분을 가져올 수 있습니다. 예를 들어 파일 확장자를 가져올 때 사용할 수 있습니다.

using System;

string file = "report.csv";
string ext = file[^3..];
Console.WriteLine(ext); // csv

인덱스로 단일 문자 가져오기

단일 Index로 문자열을 인덱싱하면 하나의 char를 반환합니다. 마지막 문자에는 ^1을 사용하세요.

using System;

string s = "Coddy";
char last = s[^1];
Console.WriteLine(last); // y

첫 요소나 마지막 요소 제외하기

끝이 정해지지 않은 범위를 사용하면 요소 하나를 쉽게 제거할 수 있습니다. ..^1은 마지막 요소를, 1..은 첫 요소를 제외합니다.

using System;

string quoted = "[value]";
string inner = quoted[1..^1];
Console.WriteLine(inner); // value

문자열을 여러 부분으로 나누기

두 개의 범위 슬라이스를 사용하면 알고 있는 위치를 기준으로 텍스트를 나눌 수 있습니다.

using System;

string code = "2026-05-30";
string year = code[..4];
string month = code[5..7];
string day = code[8..];
Console.WriteLine(year + " / " + month + " / " + day); // 2026 / 05 / 30

복사 없이 슬라이싱하는 스팬

할당 없이 슬라이스하려면 AsSpan()을 사용하세요. 스팬 슬라이스는 복사본이 아니라 원본 메모리를 가리키는 창입니다.

using System;

ReadOnlySpan<char> span = "Hello, World".AsSpan();
ReadOnlySpan<char> word = span[7..];
Console.WriteLine(word.ToString()); // World

반복문에서 범위 사용하기

foreach를 사용하면 슬라이스한 배열을 직접 순회할 수 있습니다.

using System;

int[] data = { 2, 4, 6, 8, 10 };
foreach (int n in data[1..4])
    Console.Write(n + " "); // 4 6 8
Console.WriteLine();

경계가 확인됩니다

범위를 벗어난 슬라이스는 ArgumentOutOfRangeException을 발생시키므로, 실수로 너무 많이 읽으면 데이터가 손상되기 전에 즉시 실패합니다.

using System;

int[] d = { 1, 2, 3 };
try { var _ = d[1..10]; }
catch (ArgumentOutOfRangeException) { Console.WriteLine("slice out of bounds"); }

실용적인 파서

다음은 범위와 IndexOf를 사용해 이메일에서 이름과 도메인을 추출하는 작은 파서입니다.

using System;

string email = "ada@coddy.dev";
int at = email.IndexOf('@');
string user = email[..at];
string domain = email[(at + 1)..];
Console.WriteLine(user + " | " + domain); // ada | coddy.dev

빠른 확인

배열과 문자열의 범위 슬라이싱을 얼마나 이해했는지 확인해 보세요.

복습

범위를 배열과 문자열에 적용하는 방법을 배웠습니다.

  • array[1..3]은 새로 복사한 배열을 반환합니다.
  • string[a..b]는 부분 문자열을 반환하고, 단일 Index는 char를 반환합니다.
  • ..^1과 1..은 요소 하나를 제거합니다.
  • AsSpan()은 할당 없이 슬라이스합니다.

자주 묻는 질문

“배열과 문자열의 범위” 강의는 무료인가요?

네 — “배열과 문자열의 범위” 전체 내용을 이 웹사이트에서 무료로 읽을 수 있습니다. 인터랙티브하게 실습하려면(내장 코드 에디터와 24/7 AI 튜터), CoddyKit PRO로 업그레이드하면 C# Academy 강의 전체를 잠금 해제할 수 있습니다. C# Academy 강의에는 총 4개의 강의가 포함되어 있습니다.

“배열과 문자열의 범위”에서 뭘 배우나요?

배열, 스팬 및 부분 문자열을 슬라이스합니다. 브라우저에서 직접 실행하는 실습 코드로 C# Academy을(를) 배우며, 24/7 AI 튜터가 강의를 진행하면서 질문에 답변해줍니다.

C# Academy을(를) 시작하는 데 경험이 필요한가요?

사전 경험은 필요하지 않습니다. CoddyKit의 C# Academy은(는) 초급자부터 고급 학습자까지를 위해 구성되어 있으므로, 여기서 시작하거나 처음부터 시작할 수 있으며 자신의 속도대로 진행할 수 있습니다. 이것은 4개 중 3번째 강의입니다.

“배열과 문자열의 범위” 강의는 얼마나 걸리나요?

대부분의 CoddyKit 강의는 약 5~10분이 소요됩니다. 각 강의는 간결하고 인터랙티브하여 꾸준한 진행이 가능하며, 웹과 앱에서 중단한 부분부터 바로 시작할 수 있습니다.

이 C# Academy 강의에서 코드를 작성하고 실행할 수 있나요?

네. 모든 C# Academy 강의에는 내장 코드 에디터가 포함되어 있으므로, 브라우저에서 바로 실제 코드를 작성하고 실행한 후 즉시 AI 피드백을 받을 수 있습니다 — 로컬 설정이 필요 없습니다.

이 강의의 모든 강의

  1. Index 형식과 ^ 연산자
  2. Range 형식과 .. 연산자
  3. 배열과 문자열의 범위
  4. 범위를 지원하는 사용자 지정 형식
← C# Academy(으)로 돌아가기