问题 C#读取包含由选项卡分隔的数据的文本文件


我有一些代码:

 public static void ReadTextFile()
    {
        string line;

        // Read the file and display it line by line.
        using (StreamReader file = new StreamReader(@"C:\Documents and Settings\Administrator\Desktop\snpprivatesellerlist.txt"))
        {
            while ((line = file.ReadLine()) != null)
            {

                char[] delimiters = new char[] { '\t' };
                string[] parts = line.Split(delimiters, StringSplitOptions.RemoveEmptyEntries);
                for (int i = 0; i < parts.Length; i++)
                {

                     Console.WriteLine(parts[i]);
                     sepList.Add(parts[i]);

                }

            }

            file.Close();
        }
        // Suspend the screen.
        Console.ReadLine();     
    }

它读入包含由制表符分隔的数据的文本文件,并将数据拆分为单独的单词。

我遇到的问题是,一旦数据被分离,它在列表中的随机字符串的左侧和右侧仍然有大量的空白区域(事实上大多数都是这样)。我无法修剪字符串,因为它只删除了空格,从技术上讲,这不是空格。

任何人都对如何解决这个问题有任何想法!?


7071
2018-06-22 16:36


起源

我很困惑 - 你说它有大量的空白,但是你还说修剪不起作用,因为它不是空白? - Eric Petroelje
你能仔细检查一下这些空白字符是什么吗?我不相信它们可能是您发布的代码中的实际标签。 - Noldorin
究竟是什么数量的白色空间,而不是技术上的白色空间? - Groo
(作为旁注)你可以在a中省略file.Close() using construct(StreamReader.Dispose自身调用Close)。 - Groo
基本上一旦该代码运行,我最终得到一个单独的单词的通用列表 - 但是这些单词后面有大量的空格,有时候........ - Goober


答案:


我遇到的问题是,一旦数据被分离,它在列表中的随机字符串的左侧和右侧仍然有大量的空白区域(事实上大多数都是这样)。我无法修剪字符串,因为它只删除了空格,从技术上讲,这不是空格。

听起来你的字符串中有非制表符空格字符,以及制表符分隔符。

使用String.Trim应该可以正常删除这些额外的字符。如果由于某种原因,对每个单词执行String.Trim不起作用,则需要切换以找出包含的额外“字符”,并使用此 String.Trim的重载


11
2018-06-22 16:45



谢谢你 - 非常感谢! - Goober


你有这样的白色空格/标签吗? “ 你好 ” ?

修剪也删除空格和制表符


2
2018-06-22 16:42