我正在以int格式从数据库中读取IP地址,但我想显示它们IP格式,如000.000.000.000
是否可以使用String.Format方法?
例如:
string str = String.Format("{0:#,###,###.##}", ips);
如果您使用System.Net命名空间中的IPAddress对象来解析您的地址,如下所示:
IPAddress ip = IPAddress.Parse(IPStringHere);
然后在该对象上使用“ ToString()”方法:
string outputString = ip.ToString();
您可以使用整数和句号以显示所需格式的IP地址字符串。
IPAddress解析例程将使用字符串IP地址,并且还将采用int / long int格式地址,也允许您解析这两种格式。
作为奖励,如果您使用“ TryParse”并将转换放在if块中,您还可以在返回字符串之前进行测试,以查看输入格式是否生成了正确的IP地址,方便进行输入验证。
这些32位整数分别代表整个IP地址吗?如果是这样...
IPAddress ip = new IPAddress((long)ips);
return ip.ToString();
(我不知道为什么该构造函数要花很长时间,如果超出UInt32的范围,它将抛出异常,所以我认为UInt32更合适。)
如果是数组:
string str = String.Format("{0:###}.{1:###}.{2:###}.{3:###}", ips[0], ips[1], ips[2], ips[3]);
这样的东西?。Net 4.0
string str = string.Join(".", ips.Select(x => x.ToString()))
早期
string str = string.Join(".", ips.Select(x => x.ToString()).ToArray())
这就是说,将string[]
与中间的.
连接起来。该数组由ips组成,使用ToString()
转换为字符串,然后使用ToArray()
我来找同样的答案..但是看到那里没有我写我自己的东西。
private string padIP(string ip)
{
string output = string.Empty;
string[] parts = ip.Split('.');
for (int i = 0; i < parts.Length; i++)
{
output += parts[i].PadLeft(3, '0');
if (i != parts.Length - 1)
output += ".";
}
return output;
}
编辑:啊,我看到的是int格式..没关系,不确定您会怎么做。...