首页 > 后端开发 > 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>
登录后复制

可以使用自定义测试来验证分割算法的准确性。该函数将分割后的数组与预期数组进行比较,并断言它们相等。

结论

通过使用自定义函数或正则表达式,我们可以有效地将包含命令行参数的字符串分割成 string[] 数组,捕获各个参数,就像在命令行上指定参数时 C# 的处理方式一样。

以上是如何在 C# 中将单个命令行参数字符串拆分为字符串数组?的详细内容。更多信息请关注PHP中文网其他相关文章!

来源:php.cn
本站声明
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn
作者最新文章
热门教程
更多>
最新下载
更多>
网站特效
网站源码
网站素材
前端模板