【问题标题】:constant to split string by carriage return (CR) in c#在c#中通过回车符(CR)分割字符串的常量
【发布时间】:2013-11-21 14:34:13
【问题描述】:

我正在尝试将一个字符串拆分为两个数组。

第一个数组在字符串的开头有数据,由\t(制表符)字符分割,其余部分在第一个换行符(\n)之后。

我试过这个,认为这就是我想要的:

string[] pqRecords = pqRequests.ToString().Split('\n');

我也试过这个:

internal static readonly string segment = Environment.NewLine + "\t";
string[] pqRecords = pqRequests.ToString().Split(segment);

不幸的是,Split 方法只接受一个字符。

我知道我的 pqRequests 字符串变量中有 vbcr,因为当我将鼠标悬停在它上面并查看可视化文本时,第一行带有制表符,其他所有内容都在它自己的行上。

此数据取自一个txt文件,在该文件中,当用Notepad++打开时,我可以看到CR字符。

在 c# 中我应该为这些 CR 字符使用替代常量吗?

【问题讨论】:

  • 我想你可能想试试Environment.NewLine,但它是一个字符串,所以你必须使用另一个重载的Split
  • File.ReadAllLines(filename).
  • 我尝试了string[] pqRecords = pqReq.Split(new string[] { Environment.NewLine }, StringSplitOptions.None);,但我的数组中只有一个字符串而不是几行。

标签: c# string tokenize


【解决方案1】:

string.Splitwill happily accept 多个分隔符。您只需将它们作为数组传递:

internal static readonly string segment = Environment.NewLine + "\t";
string[] pqRecords = pqRequests.ToString().Split(segment.ToArray());

当然你可以(也应该)写得更清楚

internal static readonly char[] separators = new[] { '\n', '\t' };
string[] pqRecords = pqRequests.ToString().Split(separators);

【讨论】:

    【解决方案2】:

    回车符用'\r'表示,是你需要的吗?

    【讨论】:

      猜你喜欢
      • 2015-01-21
      • 1970-01-01
      • 1970-01-01
      • 2012-07-31
      • 1970-01-01
      • 2014-08-22
      • 2020-11-07
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多