将字符串转换为浮点时出错
问题描述:
我有一个关于转换的菜鸟问题。将字符串转换为浮点时出错
string Descript1 = ":1:2:3:4:5";
Regex pattern = new Regex("(:)");
foreach (string sub in pattern.Split(Descript1))
{
if (sub != ":")
{
float a = Convert.ToSingle(sub);
}
}
但是这段代码不断输出错误:“字符串的格式不正确”。
任何人都可以帮助我吗?
谢谢。
答
if (sub != ":" && sub!="")
答
我想你的数组会以一个空字符串开头(因为:在你的字符串的开头)。第一步是使用调试器来确定数组是否包含您认为它包含的内容。
答
分割的第一个结果是一个空字符串,即字符串中的第一个冒号之前的内容。
跳过空字符串,而不是跳过 “:”(因为这永远不能在结果出现):
string Descript1 = ":1:2:3:4:5";
Regex pattern = new Regex(":");
foreach (string sub in pattern.Split(Descript1)) {
if (sub.Length > 0) {
Single a = Convert.ToSingle(sub);
}
}
答
试试这个:
string description = ":1:2:3:4:5";
var floats = from part in description.Split(new char[] { ':' }, StringSplitOptions.RemoveEmptyEntries)
select float.Parse(part);
foreach (var f in floats)
{
Console.WriteLine(f);
}
答
Regex.Split在返回一个空字符串您的数组(从Pattern.Split返回)开始
将其更改为以下,它应该工作:
string Descript1 = ":1:2:3:4:5";
Regex pattern = new Regex("(:)");
foreach (string sub in pattern.Split(Descript1))
{
if (sub != ":" && sub != string.Empty)
{
float a = float.Parse(sub);
}
}
这是在任何特定的编程语言? – Grumdrig 2009-11-10 19:27:45
是额外的“in string Descript1 =”:1:2:3:4:5“”;一个错字? – 2009-11-10 19:28:03