> 백엔드 개발 > C++ > C#에서 단일 명령줄 매개변수 문자열을 문자열 배열로 분할하는 방법은 무엇입니까?

C#에서 단일 명령줄 매개변수 문자열을 문자열 배열로 분할하는 방법은 무엇입니까?

Barbara Streisand
풀어 주다: 2025-01-15 11:56:43
원래의
120명이 탐색했습니다.

How to Split a Single Command-Line Parameter String into a String Array in C#?

C#에서 명령줄 매개변수 문자열을 문자열 배열로 분할

문제 개요

C#에서는 명령줄 인수가 문자열 배열로 전달됩니다string[]. 문제는 명령줄 매개변수가 포함된 단일 문자열에서 이 배열을 추출하는 방법입니다.

표준 함수를 사용하시나요, 아니면 정규 표현식을 사용하시나요?

이 작업을 수행하기 위해 직접 사용할 수 있는 표준 기능은 없습니다. 그러나 사용자 정의 함수나 정규식을 사용하여 문자열을 올바르게 분할할 수 있습니다.

문자체크 기반의 커스텀 기능

문자 검사를 기반으로 하는 사용자 정의 함수를 사용하여 문자열을 분할할 수 있습니다. 이 함수는 각 문자를 검사하고 문자열을 분할해야 하는지 여부를 결정합니다. 함수 형태는 다음과 같습니다.

<code class="language-csharp">public static IEnumerable<string> SplitCommandLine(string commandLine)
// ...</code>
로그인 후 복사

분할 알고리즘

알고리즘은 다음과 같습니다.

  1. 변수 inQuotesfalse로 초기화합니다.
  2. 다음과 같이 분할 지점을 결정하는 함수를 사용하여 문자열을 분할합니다.
    • 문자가 '''인 경우 inQuotes 값을 전환합니다.
    • inQuotesfalse이고 문자가 ''인 경우 문자열을 분할합니다.
  3. 분할 문자열에서 일치하는 따옴표를 자르고 제거합니다.
  4. 빈 문자열을 필터링합니다.

확장 방법

다음 확장 방법을 사용하여 기능을 확장할 수 있습니다.

  • public static IEnumerable<string> Split(this string str)
  • public static string TrimMatchingQuotes(this string input, char quote)

사용예

이 함수를 사용하려면 명령줄 인수가 포함된 단일 문자열을 제공하고 개별 인수가 포함된 string[] 배열을 받습니다.

<code class="language-csharp">string[] parameterArray = SplitCommandLine(parameterString).ToArray();</code>
로그인 후 복사

맞춤 테스트

<code class="language-csharp">public static void Test(string cmdLine, params string[] args)
// ...</code>
로그인 후 복사

사용자 정의 테스트를 사용하여 분할 알고리즘의 정확성을 확인할 수 있습니다. 이 함수는 분할된 배열을 예상 배열과 비교하여 동일하다고 주장합니다.

결론

사용자 지정 함수나 정규식을 사용하면 C#에서 명령줄에 매개변수를 지정할 때 수행하는 것과 마찬가지로 명령줄 매개변수가 포함된 문자열을 string[] 배열로 효과적으로 분할하여 개별 매개변수를 캡처할 수 있습니다.

위 내용은 C#에서 단일 명령줄 매개변수 문자열을 문자열 배열로 분할하는 방법은 무엇입니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

원천:php.cn
본 웹사이트의 성명
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.
저자별 최신 기사
인기 튜토리얼
더>
최신 다운로드
더>
웹 효과
웹사이트 소스 코드
웹사이트 자료
프론트엔드 템플릿