日期:2014-05-18  浏览次数:21226 次

c#.net将字符串转换为整形数组时的错误:输入字符串的格式不正确
将字符串转换为整形数组时的错误:输入字符串的格式不正确 

string myString = "1,2,3,4,"; 
tmpString1 = myString.TrimEnd(','); 
string[] tmpString2 = tmpString1.Split(','); 

for(i = 0; i < tmpString2.Length; i++) 

int myInt = int.Parse(tmpString2[i]);//错误: 用户代码未处理FormatException 输入字符串的格式不正确。 

//do something with myInt; 
}

------解决方案--------------------
因为数组最后一个元素是空字符
string myString = "1,2,3,4";
或者 对tmpString2[i]做检查
------解决方案--------------------
逗号后面其实没有东西了! 是个空所以你类型转换他就会报 错
------解决方案--------------------
[code=C#][/code] string myString = "1,2,3,4,";
string m = myString.TrimEnd(',');
string[] s = m.Split(',');
for (int i = 0; i < s.Length; i++)
{
int x = int.Parse(s[i]);
Console.WriteLine(x);
}

未出现异常!比较一下,看有什么区别!
------解决方案--------------------
你贴的代码编译都通不过
你把真实的代码贴出来,才好帮你看

比如可能是半角逗号写成全角的了
你单步调试下看看数组的内容~
------解决方案--------------------
using System;
using System.Collections.Generic;
using System.Text;

namespace ConsoleApplication1
{
class Program
{
static void Main(string[] args)
{
string myString = "1,2,3,4,";
string tmpString1 = myString.TrimEnd(',');
string[] tmpString2 = tmpString1.Split(',');

for (int i = 0; i < tmpString2.Length; i++)
{
int myInt = int.Parse(tmpString2[i]);
Console.WriteLine(myInt.ToString());
}
}
}
}

不过红色的地方是我帮你加上的,测试完全通过!
------解决方案--------------------
for (int i = 0; i < tmpString2.Length-1; i++)