2012-04-20 51 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(';');