C#에서 명령줄 매개변수 문자열을 문자열 배열로 분할
C#에서는 명령줄 인수가 문자열 배열로 전달됩니다string[]
. 문제는 명령줄 매개변수가 포함된 단일 문자열에서 이 배열을 추출하는 방법입니다.
이 작업을 수행하기 위해 직접 사용할 수 있는 표준 기능은 없습니다. 그러나 사용자 정의 함수나 정규식을 사용하여 문자열을 올바르게 분할할 수 있습니다.
문자 검사를 기반으로 하는 사용자 정의 함수를 사용하여 문자열을 분할할 수 있습니다. 이 함수는 각 문자를 검사하고 문자열을 분할해야 하는지 여부를 결정합니다. 함수 형태는 다음과 같습니다.
<code class="language-csharp">public static IEnumerable<string> SplitCommandLine(string commandLine) // ...</code>
알고리즘은 다음과 같습니다.
inQuotes
를 false
로 초기화합니다. inQuotes
값을 전환합니다.inQuotes
이 false
이고 문자가 ''인 경우 문자열을 분할합니다. 다음 확장 방법을 사용하여 기능을 확장할 수 있습니다.
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 중국어 웹사이트의 기타 관련 기사를 참조하세요!