C# 将字符串数组解析为Int矩阵
未处理的异常:System.FormatException:输入字符串的格式不正确。 位于System.Number.StringToNumber(字符串str、NumberStyles选项、NumberBuffer&Number、NumberFormatInfo信息、布尔解析十进制) 在System.Number.ParseInt32(字符串s、NumberStyles样式、NumberFormatInfo信息) 在System.Int32.Parse处(字符串s)C# 将字符串数组解析为Int矩阵,c#,parsing,C#,Parsing,未处理的异常:System.FormatException:输入字符串的格式不正确。 位于System.Number.StringToNumber(字符串str、NumberStyles选项、NumberBuffer&Number、NumberFormatInfo信息、布尔解析十进制) 在System.Number.ParseInt32(字符串s、NumberStyles样式、NumberFormatInfo信息) 在System.Int32.Parse处(字符串s) 在我将单词[k]解析成矩阵
在我将单词[k]解析成矩阵1[I,j]的那一行,我得到一条错误消息。解析在我第一次使用words[]时可以正常工作,但在我第二次读入内容时就不行了。问题是从内部循环中读取下一行。您需要读取行而不是每个单元格上的行
3
Matrix One
5 7
45 38 5 56 18 34 4
87 56 23 41 75 87 97
45 97 86 7 6 8 85
67 6 79 65 41 37 4
7 76 57 68 8 78 2
Matrix Two
6 8
45 38 5 56 18 34 4 30
87 56 23 41 75 87 97 49
45 97 86 7 6 8 85 77
67 6 79 65 41 37 4 53
7 76 57 68 8 78 2 14
21 18 46 99 17 3 11 73
Matrix Three
6 6
45 38 5 56 18 34
87 56 23 41 75 87
45 97 86 7 6 8
67 6 79 65 41 37
7 76 57 68 8 78
21 18 46 99 17 3
var numOfMatrix=int.Parse(fileIn.ReadLine().Trim());
变量矩阵=新的整数[numOfMatrix][,];
对于(变量matrixNumber=0;matrixNumber //不要使用什么是输入文件?会出现什么错误?未处理的异常:System.FormatException:输入字符串的格式不正确。为了清楚起见,您可能应该将收到的错误消息放在问题本身中。此外,您还应该澄清该样本数据是样本输出还是输入?您是如何得到的当您阅读第一行indexOutOfBounds
错误3
,然后尝试将matrix1W
设置为words[1]
您的输入文件中的每个值之间是否有一个空格,或者它们是否有多个空格,如图所示?我知道这可能会影响事情,但在运行我的程序时,我仍然在同一行上遇到相同的错误。您怎么能在不知道OP程序中的输入数据的情况下确定这个答案是正确的呢当抛出异常时,was要在他的机器上检查words[k]
,他会看到它显示Matrix
他的输入数据在问题中提供。如果您使用了多个空格,您还需要删除空的entires。
3
Matrix One
5 7
45 38 5 56 18 34 4
87 56 23 41 75 87 97
45 97 86 7 6 8 85
67 6 79 65 41 37 4
7 76 57 68 8 78 2
Matrix Two
6 8
45 38 5 56 18 34 4 30
87 56 23 41 75 87 97 49
45 97 86 7 6 8 85 77
67 6 79 65 41 37 4 53
7 76 57 68 8 78 2 14
21 18 46 99 17 3 11 73
Matrix Three
6 6
45 38 5 56 18 34
87 56 23 41 75 87
45 97 86 7 6 8
67 6 79 65 41 37
7 76 57 68 8 78
21 18 46 99 17 3
var numOfMatrix = int.Parse(fileIn.ReadLine().Trim());
var matrices = new int[numOfMatrix][,];
for (var matrixNumber = 0; matrixNumber < numOfMatrix; matrixNumber++)
{
var nameOfMatrix1 = fileIn.ReadLine().Trim();
var words = fileIn.ReadLine().Trim().Split(new[] { ' ' }, StringSplitOptions.RemoveEmptyEntries);
var matrix1H = int.Parse(words[0]);
var matrix1W = int.Parse(words[1]);
var matrix1 = matrices[matrixNumber] = new int[matrix1H, matrix1W];
// don't use <=
for (int i = 0; i < matrix1H; i++)
{
// read line line outside of the inner loop
words = fileIn.ReadLine().Trim().Split(new[] { ' ' }, StringSplitOptions.RemoveEmptyEntries);
// don't use <=
for (int j = 0; j < matrix1W; j++)
{
matrix1[i, j] = int.Parse(words[j]);
}
}
}