2015-11-17 62 views
-1

我用C#和新的和我有一些問題。 我正在寫一些程序從遠程機器下面的輸出(使用SSH):解析多行的字符串(C#)

wwn = 5001248018b6d7af 

node_wwn = 5001248018b6d7ae 

wwn = 5001248118b6d7af 

node_wwn = 5001248118b6d7ae 

wwn = 5001248218b6d7af 

node_wwn = 5001248218b6d7ae 

wwn = 5001248318b6d7af 

node_wwn = 5001248318b6d7ae  

上面的輸出保存到字符串...

我需要從這個輸出列表或數組中提取以下面的格式:

50:01:24:80:18:B6:D7:AF:50:01:24:80:18:B6:D7:AE

每兩行是對( wwn和node_wwn)

我值得下面的函數

public void OutPutParse (string output) 
    { 
     string wwnn = null; 
     string wwpn = null; 

     string[] test = output.Split('\n'); 
     test = test.Where(item => !string.IsNullOrEmpty(item)).ToArray(); 

     //run all over the test array and exrract the wwns and wwpn 
     for (int i = 0; i < test.Length; i++) 
     { 

     } 


    } 

該功能創建的WWN的陣列(測試)和node_wwn

預期的結果是一個數組或列出將包括WWN + node_wwn這樣 50:01 :24:80:18:B6:D7:AF:50:01:24:80:18:B6:D7:AE

+1

看String.split 和 的String.Format 基本上你可以在字符串分割成一個數組。如果需要,可以使用另一個分隔符將數組中的項分開...... 然後,您可以使用string.Format輸出。 例如 - var myArray = MyString.Split(':'); String myNewString = String.Format(「{0} {1},myArray [0],myArray [1}」); – AntDC

+1

您能否爲問題中的樣本輸入提供*期望的輸出*? –

+0

@DmitryBychenko +1因爲xx:xx:xx:yy:yy:yy的列表並沒有說太多,似乎很奇怪 – MajkeloDev

回答

0

最簡單的方式實現這一目標是:

string www = "5001248018b6d7af"; 
string wwwn = "5001248018b6d7ae"; 

string myString = ""; 

// Implemenet loop here. 
// www = "number" // the next number you get 
// wwwn = "number" // the next number you get 
myString = www + myString + wwwn; 

你絕對當你有一個字符串列表或其他東西時,你必須用循環來完成它。

如果你想要它在同一個順序,你可以做一個字符之間的字符就像一個「;」和分裂的所有號碼,或者你只是做兩個字符串,並在這樣的結束將它們結合起來:

string www = "5001248018b6d7af"; 
string wwwn = "5001248018b6d7ae"; 
string mywwwString = ""; 
string mywwwnString = ""; 

// Implement the loop to add strings here 
// www = "number" // the next number you get 
// wwwn = "number" // the next number you get 
mywwwString += www; 
mywwwnString += wwwn; 
string myString = www + wwwn;