C# 将字符串转换为浮点时出错
我有一个关于转换的新手问题C# 将字符串转换为浮点时出错,c#,regex,C#,Regex,我有一个关于转换的新手问题 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 != ":")
{
float a = Convert.ToSingle(sub);
}
}
if (sub != ":" && sub!="")
但是这段代码不断地抛出错误:字符串的格式不正确
有人能帮我吗
谢谢。您不应该需要正则表达式模式。该方法有一个重载,它将分隔符作为字符串接受
执行console.writeline或breakpoint操作,并确保您得到的字符串对转换有意义。我认为您的数组将以空字符串开头,因为字符串开头的:。第一步是使用调试器确定数组是否包含您认为它包含的内容。拆分的第一个结果是空字符串,即字符串中第一个冒号之前的内容
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);
}
在Pattern.Split返回的数组的开头,Regex.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);
}
}
这是在任何特定的编程语言中吗?是字符串描述符1=:1:2:3:4:5中的额外值;打字错误?