我正在尝试根据textarea的输入拆分一个可以用逗号或换行符输入的字符串。我不确定在c#中拆分此字符串的语法。 目前我有:
string[] splitString = inputString.Split(','); //WORKS
//string[] splitString = inputString.Split(new string[] { ",","\r\n","\n" }, StringSplitOptions.None); //DOES NOT WORK
答案 0 :(得分:7)
由于某些文字使用\r
作为新行。
您应该使用下面的代码并删除空条目以使阵列更清洁。
string[] splitString = inputString.Split(new string[] { ",", "\r", "\n" }, StringSplitOptions.RemoveEmptyEntries);
或使用Regex.Split。 (这不会删除空条目。)
String[] splitString = Regex.Split(inputString, "[,\r\n]");
<强>更新强>
由于Regex.Split的评论,您还可以使用WiktorStribiżew删除空条目。
下面的代码删除了字符串开头或结尾的空条目。
String[] splitString = Regex.Split(inputString, "[,\r\n]+");
要消除显示在行的开头或结尾的空条目,请使用以下代码。
Regex.Split(Regex.Replace(inputString, "^[,\r\n]+|[,\r\n]+$", ""), "[,\r\n]+");
正则表达式语言
如果您想了解有关Regex
的更多信息或其工作方式,可以查看here以获取快速参考。
答案 1 :(得分:0)
您可以将Environment.NewLine传递到字符串数组中:
string[] splitString = inputString.Split(new string[] { ",", Environment.NewLine }, StringSplitOptions.RemoveEmptyEntries);