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

Something like this should work:

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

Once you detect -p you want to parse the next entry as your port value.

于 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 に答える