我从带有长类型限定符的第 3 方软件中得到一个字符串,例如“1L”。我想将其解析为 Int64,但 Int64.TryParse 无法将其识别为 Int64。有没有一种 .NET 方法可以安全地做到这一点?我想避免解析自己...
谢谢你的帮助!
在最简单的情况下,您可以这样做:
string sNum = "1L";
int pos = sNum.IndexOf('L');
if (pos == sNum.Length-1)
{
sNum = sNum.Substring(0, sNum.Length-1);
}
long num = int64.Parse(sNum);
通过浏览,我可以推荐的最好的方法是使用正则表达式来提取或删除非数字字符,然后使用框架进行解析(Convert、Parse 或 TryParse 等)。
我从以下问题之一中偷走了这个,希望它有效:
var originalString = "9L";
var result = Convert.ToInt64(Regex.Replace(originalString, "[^0-9]", String.Empty));
请参阅这些问题以获取一些示例(以及一些,错误,...有趣的替代方法):