2016-07-27 91 views
1

我想在列表框中将IP从端口中分离出来。但我只是离开端口号和“:”我将如何使它,所以“:”被删除,只剩下IP。如何从IP地址字符串中删除端口号

IPS是这样的:

192.168.0.12:80

192.168.0.2:123

192.168.0.3:1337

for (int i = 0; i < lb.Items.Count; i++) 
     { 
      string item = lb.Items[i] as string; 
      item = item.Substring(item.LastIndexOf(":")); 
      lb.Items[i] = item; 
     } 
+5

'项目= item.Substring(0,item.LastIndexOf( ':') );' – itsme86

回答

3

你可以解析成一个URI然后检查Host的值:

String ip = "192.168.0.3:1337"; 
Uri uri = new Uri("http://" + ip); 
MessageBox.Show(uri.Port.ToString()); //shows 1337 
MessageBox.Show(uri.Host.ToString()); //shows 192.168.0.3 

这具有确保URI的好处是有效的,并会为不包含:而使用IndexOf(':')不会,所以你就必须做一个额外的检查,看地址工作,如果字符串.Contains它首先

1

你可以分割字符串:

string ip = item.Split(":")[0] 

,或者你可以创建一个Uri对象,并从中提取Host值