我正在尝试将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;
}
答案 0 :(得分: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 :(得分:3)
您可以拆分字符串:
string ip = item.Split(":")[0]
或者您可以创建一个Uri对象并从中提取主机值