【问题标题】:TRIM from right to first space [closed]从右到第一个空格TRIM [关闭]
【发布时间】:2013-11-08 13:31:21
【问题描述】:

是否可以从字符串的左侧到第一个空格进行 TRIM。 所以model.ProductRecord_Name 返回字符串“4 - Mars” 所以而不是model.ProductRecord_Name = model.ProductRecord_Name.Trim();

有没有类似的:

model.ProductRecord_Name = model.ProductRecord_Name.TrimFromRightToFirstSpace

这可能吗?

【问题讨论】:

  • 不清楚你在问什么。
  • 可以使用 substring()
  • 不清楚你在问什么,请举个具体的例子
  • 你是什么意思直到第一个空白空间?您是否在寻找 Trim() 函数的逆函数?请在函数之前和之后举例说明您的字符串。
  • 结合 indexOf 和 subString 可以在 Java 中做到这一点,我猜在 C# 中也是一样的。

标签: c# asp.net asp.net-mvc


【解决方案1】:

有没有类似的:

我会说不

一种可以执行您(可能)想要的方法(不确定您想要右还是左)

这是剩下的:

    public string TrimFromLeftToFirstSpace(string s)
    {
        return s==null || s.IndexOf(' ')==-1
            ? s 
            : String.Join(" ", s.Split(' ').Skip(1).ToArray());
    }

这是对的:

    public string TrimFromRightToFirstSpace(string s)
    {
        if (s == null || s.IndexOf(' ') == -1)
            return s;

        var split = s.Split(' ');
        return String.Join(" ", s.Take(split.Length-1).ToArray());
    }

我想正则表达式会更适合这项工作

应该类似于(远非正则表达式忍者)

^((?:[^\s]*\s)*)(?:[^\s]*)$ 用于右侧装饰

^(?:[^\s]*\s?)(.*)$ 用于左侧装饰

结果在第一个捕获的组中

【讨论】:

    【解决方案2】:

    string.TrimStart() 用于从左侧修剪。会将" 4 - Mars " 修剪为"4 - Mars "

    string.TrimEnd() 用于从右侧修剪。会将" 4 - Mars " 修剪为" 4 - Mars"

    string.Trim() 用于左右修剪。会将" 4 - Mars " 修剪为`"4-Mars"

    【讨论】:

    • 我怀疑 OP 根本不想修剪给定“到第一个空格”和示例字符串“4 - Mars”, 已经修剪了 :)
    • 它令人困惑@oerkelens我不知道OP当时想说什么..
    • 我认为 cmets 表明这个问题让大多数人感到困惑 :)
    • 在某种程度上@oerkelens 他希望它只从字符串的左侧修剪,然后他说只修剪到第一个空格(我相信他的意思是直到第一个非空字符) .他似乎不是以英语为母语的人(像我一样)
    猜你喜欢
    • 1970-01-01
    • 2015-03-23
    • 2012-05-10
    • 2023-03-30
    • 1970-01-01
    • 2018-06-16
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多