c#使用String格式将字符串读入对象
本文关键字:对象 字符串 使用 String 格式 | 更新日期: 2023-09-27 18:07:10
我用
创建了一个字符串String.Format(IPAddressRangeFormat, StartIP, EndIP);
现在我需要将字符串读入StartIP和EndIP对象。
在c#中这样做最简单的方法是什么?谢谢,李。
作为String的反面,没有简单的方法可以做到这一点。格式不确定。
同时:
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
可能是拥有像IPRange
这样的独立类型的最好方法,您将在构造函数中拥有2个IP并覆盖ToString()
。解析后,您可能需要实现自定义逻辑,例如静态Parse(string)
成员。
您想要做的事情称为解析,它不能由String执行。格式方法。
根据IPAddressRangeFormat
的格式,使用ToString()…然后是string.Split(':')
…用您正在使用的char
替换':'。
我真的需要看到你的IPAddressRangeFormat
格式,以提供一个更好的答案。