2017-11-17 31 views
-1

C#で行列に文字列を変換する「!」私はこのような文字列を持っている

Prof. Dr. Bill Gates [email protected] Microsoft Corporation 
Assoc. Dr. Elon Musk [email protected] Tesle Inc. 
Dr. Mehmet Mehdi Kara [email protected] Tetra Yazılım 

それぞれを'End of Line'と ';'各要素の終わりです これを簡単な方法でどのように行うことができますか?

+4

だから?まだ何か試しましたか?あなたが試したこととは何が作用していないのですか? (SOはコードサービスサイトではありません) –

+1

'string.Split( ';')' –

+0

var simple = people.Split( '!')ここで(p =>!string.IsNullOrWhiteSpace(p))。 (p => p.Split( ';'))。ToArray(); – Rob

答えて

1

str.split();を使用します。

var people = @"Prof. Dr. Bill Gates;[email protected];Microsoft Corporation!Dr.Elon Musk; elon @tesla.com; Tesle Inc.!Dr.Mehdi Karakoç; mehdi @tetra.com.tr; Tetra Yazılım!"; 

     var person = people.Split('!'); 

     foreach (var item in person) 
     { 
      var data = item.Split(';'); 

      var name = data[0]; 
      var email = data[1]; 
      var company = data[2]; 

      --> Here Add Itens on your Matriz or List 

     } 
0

私はMatrixオブジェクトに精通していませんが、これは2d文字列配列にその文字列を解析する方法です。あなたが正しい軌道に乗るのを助けることを願っています。

string people = "Prof. Dr. Bill Gates;[email protected];Microsoft Corporation!Dr.Elon Musk; elon @tesla.com; Tesle Inc.!Dr.Mehdi Karakoç; mehdi @tetra.com.tr; Tetra Yazılım!"; 
string[] tmp; 
int maxWidth = 0; 
int row; 
List<string[]> everybody = new List<string[]>(); 
string[] folks = people.Split('!'); 
string[,] matrix; 

foreach (string person in folks) 
{ 
    tmp = person.Split(';'); 
    maxWidth = Math.Max(maxWidth, tmp.Length); 
    everybody.Add(tmp); 
} 

matrix = new string[everybody.Count, maxWidth]; 
row = 0; 

foreach (string[] body in everybody) 
{ 
    for (int i = 0; i < maxWidth; i++) 
    { 
     if (i < body.Length) 
     { 
      matrix[row, i] = body[i]; 
     }//if this person has enough entries 
    }//for each value in person 
    row++; 
}//for each person 

//Result is now a 2 dimensional string array, parsed per value per person. 
関連する問題