C# 将字符串数组解析为Int矩阵

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]解析成矩阵

未处理的异常:System.FormatException:输入字符串的格式不正确。 位于System.Number.StringToNumber(字符串str、NumberStyles选项、NumberBuffer&Number、NumberFormatInfo信息、布尔解析十进制) 在System.Number.ParseInt32(字符串s、NumberStyles样式、NumberFormatInfo信息) 在System.Int32.Parse处(字符串s)


在我将单词[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]);
        }
    }
}