首頁 >後端開發 >C++ >如何在 C# 中將單一命令列參數字串拆分為字串數組?

如何在 C# 中將單一命令列參數字串拆分為字串數組?

Barbara Streisand
Barbara Streisand原創
2025-01-15 11:56:43120瀏覽

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>

可以使用自訂測試來驗證分割演算法的準確性。此函數將分割後的陣列與預期陣列進行比較,並斷言它們相等。

結論

透過使用自訂函數或正規表示式,我們可以有效地將包含命令列參數的字串分割成string[] 數組,捕獲各個參數,就像在命令列上指定參數時C# 的處理方式一樣。

以上是如何在 C# 中將單一命令列參數字串拆分為字串數組?的詳細內容。更多資訊請關注PHP中文網其他相關文章!

陳述:
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn