C# 如何将字符串数据解析为string和long?
我需要从这个“燃料箱”:0.220500007272得到0.220500007272。我自己也弄不清楚,也无法在网上找到任何信息C# 如何将字符串数据解析为string和long?,c#,C#,我需要从这个“燃料箱”:0.220500007272得到0.220500007272。我自己也弄不清楚,也无法在网上找到任何信息 int c = b.Split(':').Length - 1; string resultString = Regex.Match(b.Split(':')[c], @"\d+").Value; try { Console.WriteLine(float.Parse(resultSt
int c = b.Split(':').Length - 1;
string resultString = Regex.Match(b.Split(':')[c], @"\d+").Value;
try
{
Console.WriteLine(float.Parse(resultString));
}
我需要从这个“fuel_con_ins”:1.220500007272得到1.220500007272,但是现在输出是1。正则表达式模式不包括小数点,这就是为什么得到1
(正则表达式在点处停止,所以这里只得到整数部分)
在这里你真的不需要正则表达式。。。只要分开就足够了:
var myFloat = float.Parse(myString.Split(':')[1])
作为一个附加说明(与问题无关),不要使用
try{}catch
块进行语法分析,除非您认为失败是一个实际的异常。。。对于正常使用,应该使用float.TryParse()
而不是您还可以找到第一个字符,它是数字,并创建一个子字符串。
但是最简单的方法是使用分裂,如果你有“:”总是。
你也应该考虑使用,因为精度只有6-9个数字。 请记住,在使用double时,您可能必须使用
,
而不是
。您可以试试
Regex.Split(sentence, @"[^0-9\.]+").Where(c => c != "." && c.Trim() != "")
使用
Split
或regex
,两者都不需要