C# 从文本文件中删除制表符和空格
我有一个文本文件,其中包含以下文本:C# 从文本文件中删除制表符和空格,c#,C#,我有一个文本文件,其中包含以下文本: Contact Name | Contact Number 如上面的联系人姓名\t\t\t\t联系人号码,我正在使用以下代码删除\t\t\t: using (StreamReader sr = File.OpenText(fileName)) { string s = String.Empty; while ((s = sr.
Contact Name | Contact Number
如上面的联系人姓名\t\t\t\t联系人号码
,我正在使用以下代码删除\t\t\t
:
using (StreamReader sr = File.OpenText(fileName))
{
string s = String.Empty;
while ((s = sr.ReadToEnd()) != null)
{
string[] line = s.Split(new string[] {"\t\t|\t\t"}, StringSplitOptions.RemoveEmptyEntries );
}
}
我使用断点检查下面“line”变量中的值:
"Contact Name"
"Contact Number\r\n\r\n"
上面的代码行删除\t\t |\t\t
,但添加\r\n\r\n
。如何一次删除\t\t |\t\t
和\r\n\r\n
。请推荐我。等待答复。谢谢您可以使用:
s = s.TrimEnd(new char[] { '\r', '\n' });
这将从字符串末尾删除所有换行符。由于您试图从文件中删除所有字符(如\t、\n或\r),我建议您将所有文件内容作为字符串读取,并执行一个简单的操作,这比使用
.Split(“”).Join(“”)方法稍微快一点
StringBuilder sb = new StringBuilder();
using (StreamReader sr = new StreamReader(fileName))
{
String line;
while ((line = sr.ReadLine()) != null)
{
sb.AppendLine(line);
}
}
string content = sb.ToString();
// Remove all tabs and new lines
string cleanedContent = content.Replace('\t', String.Empty)
.Replace('\r', String.Empty)
.Replace('\n', String.Empty)
.Replace('|', String.Empty);
您也可以在“\r\n\r\n”上拆分,它将被删除
string[] line = s.Split(new string[] {"\t\t|\t\t", "\r\n\r\n"}, StringSplitOptions.RemoveEmptyEntries );
按|
字符分割文本,然后通过删除每行开头和结尾的制表符、空格和新行字符来修剪每行(在这种情况下,您也可以不带参数地使用trim()
,因为要删除的所有字符都被视为空白字符):
这将产生两行的序列:
"Contact Name"
"Contact Number"
我认为您还需要添加“\t”字符来修剪效率,如果您首先只按“|”进行分割,那么您可以修剪(而不仅仅是在末尾)通过{“\r'、“\n'、“\t'、”}得到的所有字符串,并得到相同的结果。它可能是更一般的解决方案,并涵盖更多的情况。
"Contact Name"
"Contact Number"