【问题标题】:Split doesn't show all strings拆分不显示所有字符串
【发布时间】:2020-08-18 06:35:16
【问题描述】:

我正在制作一个可以运行命令并检查参数的应用程序(Windows 窗体)。我尝试使用 split 作为参数,但我注意到只显示了一个字符串,它是命令而不是参数。我做错了什么?

输入:

sicr -dev

RunCommands.cs:

    class RunCommands
    {
        public string Parse(string command)
        {
            string[] args = command.Split(' ');
            if (command.StartsWith("sicr"))
            {
                return SICR(args);
            }
            return "Unknown console error.";
        }

        private string SICR(string[] args)
        {
            foreach (string arg in args)
            {
                System.Diagnostics.Debug.WriteLine(arg);
                if (arg == "-dev")
                {
                    return "SUCCES";
                }
                else
                {
                    return "ERROR: Not enough administrator levels.";
                }
            }
            return "ERROR: Unknown.";
        }
    }

输出:

sicr (Supposed to be -dev)

【问题讨论】:

  • 您正在返回第一个参数,这就是它没有到​​达 -dev 的原因。
  • 哦,我明白了!谢谢!

标签: c# string split


【解决方案1】:

正如 cmets 中提到的,您将返回第一个参数,这就是它没有到​​达 -dev 命令的原因。您可以将函数更改为:

private string SICR(string[] args)
{
    if (args.Length == 0)
    {
        return "ERROR: Unknown.";
    }

    return args.Contains("-dev") ? "SUCCESS" : "ERROR: Not enough administrator levels.";
}

这将为您搜索args 以查找-dev

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2020-09-22
    • 2022-12-08
    • 1970-01-01
    • 1970-01-01
    • 2018-06-03
    • 1970-01-01
    • 1970-01-01
    • 2017-08-09
    相关资源
    最近更新 更多