【问题标题】:C# Read Text File Containing Data Delimited By TabsC# 读取包含由制表符分隔的数据的文本文件
【发布时间】:2009-06-22 16:36:34
【问题描述】:

我有一些代码:

 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();     
    }

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

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

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

【问题讨论】:

  • 我很困惑 - 你说它有大量的空白,但你也说修剪不起作用,因为它不是空白?
  • 你能仔细检查一下这些空白字符是什么吗?从您发布的代码来看,我不相信它们实际上是标签。
  • 这些空白的数量到底是多少,但从技术上讲,空白不是?
  • (作为附注)您可以在 using 构造中省略 file.Close()(StreamReader.Dispose 自己调用 Close)。
  • 基本上,一旦运行该代码,我最终会得到一个通用的单个单词列表 - 但是这些单词后面有大量空格,有时之前......

标签: c# text-files tabs


【解决方案1】:

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

听起来你的字符串中有非制表符空白字符,并且是制表符分隔的。

使用 String.Trim 应该可以很好地删除这些额外的字符。如果由于某种原因,对每个单词执行 String.Trim 不起作用,您需要切换以找出额外的“字符”是由什么组成的,并使用这个overload of String.Trim

【讨论】:

  • 谢谢您 - 非常感谢您的帮助!
【解决方案2】:

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

修剪删除空格和制表符

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2023-03-31
    • 2015-05-21
    • 1970-01-01
    • 1970-01-01
    • 2012-12-01
    • 2023-01-01
    • 1970-01-01
    • 2015-08-08
    相关资源
    最近更新 更多