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 中国語 Web サイトの他の関連記事を参照してください。