ホームページ >バックエンド開発 >C++ >C# で単一のコマンド ライン パラメーター文字列を文字列配列に分割する方法

C# で単一のコマンド ライン パラメーター文字列を文字列配列に分割する方法

Barbara Streisand
Barbara Streisandオリジナル
2025-01-15 11:56:43116ブラウズ

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

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。