【问题标题】:string.Split function in c# tab delimiterc# 制表符分隔符中的 string.Split 函数
【发布时间】:2012-09-12 09:18:45
【问题描述】:

我有一个读取分隔文件的函数。

分隔符通过字符串参数传递给函数。问题是,当我通过 "\t" 分隔符时,它最终会像 "\\t" 一样,因此,Split 无法找到这个序列。

我该如何解决这个问题?

private void ReadFromFile(string filename, string delimiter)
{

        StreamReader sr = new StreamReader(filename, Encoding.Default);
        string[] firstLine = sr.ReadLine().Split(t.ToCharArray());

        .......
 }

【问题讨论】:

    标签: c# string split


    【解决方案1】:

    我猜你正在使用类似的东西

    string sep = @"\t";
    

    在这种情况下 sep 将持有 \\t 双反斜杠

    使用string sep = "\t"

    string content = "Hello\tWorld";
    string sep = "\t";
    string[] splitContent = content.Split(sep.ToCharArray());
    

    【讨论】:

      【解决方案2】:

      为此使用单个引号,例如 Split('\t'),这样您将传递一个字符而不是字符串。

      【讨论】:

        【解决方案3】:

        将参数值作为\t(制表符)的十进制数传递并转换为Char。

         int delimeter =9;
        
         // 9  ==> \t 
         // 10 ==> \n
         // 13 ==> \r
        
         char _delimeter = Convert.ToChar(delimeter);
        
         string[] rowData = fileContent.Split(_delimeter);
        

        快乐编程。

        【讨论】:

          【解决方案4】:

          如果您传入“\t”作为分隔符,则不会将其更改为“\t”。其他东西正在双重逃避您的标签。

              Blah("\t");
              private static void Blah(string s)
              {
                  var chars = s.ToCharArray();
                  Debug.Assert(chars.Length == 1);
          
                  var parts = "blah\tblah\thello".Split(chars);            
                  Debug.Assert(parts.Length == 3);
              }
          

          【讨论】:

            【解决方案5】:

            进行拆分的另一种方法是将 TAB(\t) 替换为这样的空格:

                        if(linea.ToLower().Contains(@"\t"))
                            linea = linea.Replace(@"\t", " ");
                        retVal = linea.Trim().Split(' ')[1];
            

            此代码对我有用。

            【讨论】:

              【解决方案6】:

              您尝试过:Environment.NewLine 吗?

              【讨论】:

              • 我认为您可能不小心在此处发布了此答案,而不是在另一个问题上,因为它似乎与所提出的问题没有任何关系。
              猜你喜欢
              • 1970-01-01
              • 1970-01-01
              • 2011-10-24
              • 1970-01-01
              • 1970-01-01
              • 2010-10-02
              • 1970-01-01
              • 2013-08-19
              • 1970-01-01
              相关资源
              最近更新 更多