【问题标题】:Trimming a string using an array of characters using C#使用 C# 使用字符数组修剪字符串
【发布时间】:2009-09-01 15:07:23
【问题描述】:

当您在字符串对象上使用 Trim() 方法时,您可以将 字符数组 传递给它,它会从字符串中删除这些字符,例如:

string strDOB = "1975-12-23     ";
MessageBox.Show(strDOB.Substring(2).Trim("- ".ToCharArray()));

这个结果是“75-12-23”而不是预期的结果:“751223”,这是为什么呢?

额外问题: 与这条线相比,哪一条线的开销更大(它的作用完全相同):

strDOB.Substring(2).Trim().Replace("-", "");

【问题讨论】:

  • 1999 年 1 月 1 日在 1999-01-01 格式中会是什么样子?
  • 取决于你用它做什么。在 SQL Server 中,以 YYYY-MM-DD HH:MM:SS 格式传递的任何字符串都会进行转换,例如:“1999-01-01 12:00:00”将是 1999 年 1 月 1 日上午 12 点。在这种情况下,您的本地化并不重要。

标签: c# string character-arrays


【解决方案1】:

因为修剪函数只修剪字符串末尾的字符。

如果您想在任何地方消除它们,请使用 Replace...

【讨论】:

  • 因此,名称“trim” :-) +1
【解决方案2】:

来自 MSDN:

返回一个新字符串,其中所有 leadingtrailing 出现的一组指定字符 当前的 String 对象被移除。

我想这是不言自明的。

【讨论】:

    【解决方案3】:

    Trim 只删除字符串开头和结尾的字符。内部“-”字符不会被删除,就像内部空格一样。你想要Replace()

    【讨论】:

      【解决方案4】:

      其他人回答正确 Trim 只修剪字符串开头和结尾的字符。用途:-

      Console.WriteLine( strDOB.Substring(2, 8).Replace("-","") )
      

      这假定原始字符串中的格式是固定的。至于性能,除非您执行其中的一百万个,否则我不会担心。

      【讨论】:

        【解决方案5】:

        Trim 仅从开头和结尾删除。如果您想从字符串中删除,请使用 Replace。

        【讨论】:

          猜你喜欢
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 2014-12-19
          • 1970-01-01
          • 1970-01-01
          • 2011-02-23
          • 1970-01-01
          相关资源
          最近更新 更多