c#使用String格式将字符串读入对象

时间:2011-09-01 14:20:14

标签: c# string

我使用

创建了一个字符串
String.Format(IPAddressRangeFormat, StartIP, EndIP);

现在我需要将字符串读回StartIP和EndIP对象。

在c#中最简单的方法是什么?

谢谢, 李。

4 个答案:

答案 0 :(得分:4)

没有简单的方法可以做到这一点,因为String.Format的反向不是确定性的。

两者:

String.Format( "{0}{1}", "123", "456" )
String.Format( "{0}{1}", "12", "3456" )

给你123456。机器不会猜测你想要哪一个。

然而,有一种比较棘手的方法,你有正则表达式。

如果你有:

String.Format ( "{0}-{1}",  StartIP, EndIP);

您可以使用表达式:

var matches = Regex.Match ( String.Format ( "{0}-{1}",  "127.0.0.1", "192.168.0.1"), "(?<startIP>.*)-(?<endIP>.*)" );
Console.WriteLine ( matches.Groups["startIP"].Value ); // 127.0.0.1
Console.WriteLine ( matches.Groups["endIP"].Value );   // 192.168.0.1

答案 1 :(得分:2)

可能是拥有像IPRange这样的单独类型的最佳方式,其中您将在costructor中拥有2个IP并覆盖ToString()。解析你可能需要在静态Parse(string)成员中实现自定义逻辑。

答案 2 :(得分:0)

您要做的事情称为Parsing,它不能由String.Format方法执行。

答案 3 :(得分:0)

根据您IPAddressRangeFormat的格式,使用ToString()...然后string.Split(':') ...将“:”替换为您正在使用的char

我真的需要看到IPAddressRangeFormat的格式才能提供更好的答案。