0

如果在文本中找到某个键​​,我试图能够存储一个整数。

键可以是字符串中的任何位置,例如:

-p 40 Bond "James bond"

或者

bond "james bond" -p 40

或者

bond -p 40 "james bond"

所以 int 端口 = 40。

这是我的尝试,但是当端口返回为 0 时,它已经很糟糕了。

if (mystring.Contains("-p"))
    {
        string sport = "";
        string[] splits = mystring.Split(' ');
        for (int i = 0; i < splits.Length; i++)
        {
            if (splits[i].Contains(" "))
                sport = splits[i].Trim();
        }

        int.TryParse(sport, out port);

        Console.WriteLine(port);
        return;
    }

端口号紧跟在-p 之后。是否有可能做到这一点?

4

2 回答 2

3

像这样的东西应该工作:

string[] splits = mystring.Split(' ');
for (int i = 0; i < splits.Length; i++)
{
    if (splits[i] == "-p")
    {
        sport = int.Parse(splits[i+1]);
    }
}

一旦您检测到-p您想要将下一个条目解析为您的端口值。

于 2013-03-10T19:45:48.790 回答
0

您可以使用正则表达式,例如

        string pattern = @"-p (\d+)";
        string input = "sdf -p 400 sdfa";

        var matched = Regex.Match(input, pattern);
        var port = matched.Groups[1].Value;

端口会给 400

于 2013-03-10T19:59:49.583 回答