c#如果输入了特定密钥,请设置端口号(整数值)? C#

时间:2013-03-10 19:42:03

标签: c# string set

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

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

-p 40 Bond "James bond"

bond "james bond" -p 40

bond -p 40 "james bond"

所以int port = 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之后立即出现。有可能这样做吗?

2 个答案:

答案 0 :(得分:3)

这样的事情应该有效:

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

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

答案 1 :(得分:0)

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

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

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

端口将给400