我已从文本文件中读取数据。我想将该文件中的数据更改为Int数组。我不知道为什么会这么错。
class Program
{
public static int[,] provincial = new int[100, 100];
public static void loadProvincial()
{
string[] s = System.IO.File.ReadAllLines("C:\\Users\\Lyn203\\Desktop\\data\\final-graph.txt");
for (int i = 0; i < s.Length; ++i)
{
string[] splitedArray = s[i].Replace("\t","_").Split('_');
//Console.WriteLine(splitedArray[i]);
for (int j = 0; j < splitedArray.Length-1; ++j)
{
provincial[i,j] = int.Parse(splitedArray[j].ToString());
}
}
Console.ReadLine();
}
static void Main(string[] args)
{
loadProvincial();
}
}
和TextFile: http://textuploader.com/djhbe
答案 0 :(得分:0)
我建议您调用删除空条目的this cheat sheet。换句话说,如果您有两个连续的选项卡,两个选项卡之间没有值,则结果将包含空字符串。该字符串不能由Int32.Parse
转换string[] splitedArray = s[i].Replace("\t","_")
.Split(new char[] {'_'},
StringSplitOptions.RemoveEmptyEntries);
相反,如果您想在代码遇到空字符串时添加零,则将Int32.Parse替换为Int32.TryParse。这将允许您检查转换结果,而不会在缺少值时出现异常
for(.....)
{
int value;
Int32.TryParse(splitedArray[j], out value);
// if conversion fails, value will be set to the default value for integers (0)
provincial[i,j] = value;
}