如何用C#在回车上拆分字符串?

Eri*_*ica 57 c# text-manipulation

我有一个ASP.NET页面,其中包含一个名为txbUserName的多行文本框.然后我将3个名称粘贴到文本框中,它们是垂直对齐的:

  • 贾森
  • 书童
  • 卡伦

我希望能够以某种方式获取名称,并在检测到回车或新行时将它们拆分为单独的字符串.我认为阵列可能是要走的路.有任何想法吗?

谢谢.

jas*_*onh 129

string[] result = input.Split(new string[] {"\n", "\r\n"}, StringSplitOptions.RemoveEmptyEntries);
Run Code Online (Sandbox Code Playgroud)

这包括\n和\ r \n换行类型,并删除用户可能输入的任何空行.

我使用以下代码测试:

        string test = "PersonA\nPersonB\r\nPersonC\n";
        string[] result = test.Split(new string[] {"\n", "\r\n"}, StringSplitOptions.RemoveEmptyEntries);
        foreach (string s in result)
            Console.WriteLine(s);
Run Code Online (Sandbox Code Playgroud)

它工作正常,分成三个字符串数组,条目为"PersonA","PersonB"和"PersonC".

  • 如果你想确定拆分CR或LF的所有组合,那么你可以这样做:`string [] result = input.Split(new char [] {'\ r','\n'},StringSplitOptions.RemoveEmptyEntries );` (13认同)
  • @jasonh:"我很确定"......最后一句话.:) (7认同)
  • 是否可以保证不会首先将\n分割为\n,将\ r \n缩减为\ r? (4认同)

o.k*_*k.w 7

更换任何\r\n\n,则采用分体式\n:

string[] arr = txbUserName.Text.Replace("\r\n", "\n").Split("\n".ToCharArray());
Run Code Online (Sandbox Code Playgroud)

  • @Matthew,@ okw:或者甚至只使用`Split('\n')`因为分隔符数组是`params`参数. (3认同)