带有ip地址和端口的C#trim字符串

时间:2011-10-02 18:26:44

标签: c# string trim

  

可能重复:
  string split in c#

大家好我从套接字获取连接的ip地址,如下所示:>> “188.169.28.103:61635”我如何将ip地址放入一个字符串并将端口放入另一个字符串? 感谢。

4 个答案:

答案 0 :(得分:8)

我个人使用Substring

int colonIndex = text.IndexOf(':');
if (colonIndex == -1)
{
    // Or whatever
    throw new ArgumentException("Invalid host:port format");
}
string host = text.Substring(0, colonIndex);
string port = text.Substring(colonIndex + 1);

Mark提到使用string.Split这也是一个不错的选择 - 但是你应该检查部件的数量:

string[] parts = s.Split(':');
if (parts.Length != 2)
{
    // Could be just one part, or more than 2...
    // throw an exception or whatever
}
string host = parts[0];
string port = parts[1];

或者如果您对包含冒号的端口部分感到满意​​(就像我的Substring版本那样),那么您可以使用:

// Split into at most two parts
string[] parts = s.Split(new char[] {':'}, 2);
if (parts.Length != 2)
{
    // This time it means there's no colon at all
    // throw an exception or whatever
}
string host = parts[0];
string port = parts[1];

另一种选择是使用正则表达式将这两个部分匹配为组。说实话,我说现在有点过分,但如果事情变得更复杂,它可能会成为一个更具吸引力的选择。 (我倾向于使用简单的字符串操作,直到事情开始变得毛茸茸并且更像“模式”,此时我会突然发出正则表达式。)

答案 1 :(得分:2)

尝试String.Split

string[] parts = s.Split(':');

这会将IP地址放在parts[0]中,将端口放在parts[1]

答案 2 :(得分:2)

我会使用string.Split()

var parts = ip.Split(':');
string ipAddress = parts[0];
string port = parts[1];

答案 3 :(得分:2)

string test = "188.169.28.103:61635";

string [] result  = test.Split(new char[]{':'});

string ip = result[0];
string port = result[1];