繁体   English   中英

从文本文件中删除制表符和空格

[英]Remove tabs and spaces from text file

我有一个文本文件,其中包含以下文本:

Contact Name            |           Contact Number

上面像Contact Name\t\t|\t\tContact Number我正在使用以下代码删除\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 );
                }
            }

我正在使用断点检查下面“行”变量中的值:

"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),我建议您将所有文件内容作为字符串读取并执行简单的.Replace(string oldChar, string newChar) ,即比使用.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 );

通过|拆分您的文本 char 然后通过从每行的开头和结尾删除制表符、空格和换行符来修剪每一行(在这种情况下,您也可以使用不带参数的Trim() ,因为您要删除的所有字符都被视为空白字符):

string text = "Contact Name            |           Contact Number";
var lines = text.Split('|').Select(s => s.Trim('\t', '\n', '\r', ' '));

这将产生两行的序列:

"Contact Name"
"Contact Number"

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM