2016-04-02 128 views
-2

如何输入文本多维数组

亚历NAME

伦敦市的一个文本文件

英格兰国家

我想将其存储在一个多维数组

string[,] tokened = new string[3, 2]; 
     int i = 0, j = 0; 
     string[] input = File.ReadAllLines(@"D:\abc.txt"); 
     foreach (string line in input) 
     { 
      foreach (var row in line.Split('\n')) 
      { 
       foreach (var col in row.Trim().Split(' ')) 
       { 
        tokened[i, j] = Convert.ToString((col.Trim())); 
        j++; 
       } 
       i++; 
      } 
     } 

我已经写了这段代码,但不会工作。

+0

'但不会work.'为什么?有什么错误?例外?意外的结果? – Eser

+0

你的第一个分割需要逐行阅读。有关https://msdn.microsoft.com/en-us/library/ezwyzy7b.aspx的信息,请参阅MSD –

+0

输入字符串格式不正确。在这条线上 tokened [i,j] = Convert.ToString(int.Parse((col.Trim()))); –

回答

0

你可以尝试:

 var numberOfRecords = 3; 
     var numberOfFields = 2; 
     var columnDelimeter = ' '; 
     var lineSeparator = "\r\n\r\n"; 
     var tokened = new string[numberOfRecords, numberOfFields]; 
     var input = System.IO.File.ReadAllText(@"d:\abc.txt"); 
     var lines = input.Replace(lineSeparator, "|").Split('|').ToArray(); 
     //loop through rows 
     for (var row = 0; row < lines.Length; row++) 
     { 
      //split the columns with a space 
      var cols = lines[row].Split(columnDelimeter).ToArray(); 
      for(var col = 0; col < numberOfFields; col++) 
      { 
       tokened[row, col] = cols[col]; 
      } 
     }