2012-04-20 77 views
1

問題很簡單,但我找不出一種方法來解決這個問題。我的應用程序接收一個字符串(stringID),它是一個ID列表,或者分隔爲「;」+換行符或只是來換行,如:Char分析換行符(C#)

ID1; 
ID2; 
ID3; 

ID1 
ID2 
ID3 

什麼我嘗試是讓表與所有這些ID;

我想:

string[] tabID = stringID.Split(';', char.Parse(Environment.NewLine)); 

而且

string[] tabID = stringID.Split(';', '\r\n')); 
string[] tabID = stringID.Split(';','\n'); 

沒有什麼工作,誰能幫助我?非常感謝

回答

3

使用類StringReader及其方法ReadLine分別讀取每一行。

+0

我認爲這是比使用一個更好的解決辦法'.Split()'。 – 2012-04-20 08:57:20

+0

謝謝,這就是我所做的,它工作得很好 – WizLiz 2012-04-20 11:34:06

1

這應該工作:

string [] split = words.Split(new Char [] {';','\n'}); 

沒有爲Split一個重載需要許多分離的char[]

+0

寫道相同的問題:/ – Reniuz 2012-04-20 09:01:55

+0

@Reniuz你是什麼意思? OP沒有使用存在的重載,沒有任何接受'params char []' – gideon 2012-04-20 09:02:38

+0

this'string [] tabID = stringID.Split(';','\ n');'從問題相同你的回答 – Reniuz 2012-04-20 09:03:58

0

試試這個:

string[] tabID = stringID.Split(new Char[] { ';', '\n', '\r'}, 
          StringSplitOptions.RemoveEmptyEntries); 
2

換行符屬性是可以是一個或兩個字符長的字符串,所以當你分割使用字符串。使用RemoveEmptyEntries選項,否則您將得到分號和換行符之間的空字符串。

string[] tabID = stringID.Split(
    new string[] { ";", Environment.NewLine }, 
    StringSplitOptions.RemoveEmptyEntries 
); 
1

嘗試:

String test = "ID1;ID2;ID3;"; 
String[] testarr = test.Split(';');