代码之家  ›  专栏  ›  技术社区  ›  Keng

我该怎么修剪字符串中的前导逗号

  •  10
  • Keng  · 技术社区  · 16 年前

    我有一根绳子,如下所示。

    ,liger, unicorn, snipe
    

    在我熟悉的其他语言中,我可以只做一个string.trim(“,”),但是如何用C语言做呢?

    谢谢。


    关于starttrim函数有很多来回的讨论。正如一些人指出的,starttrim不会影响主变量。然而,考虑到数据的结构与问题的关系,我对于接受哪个答案感到很困惑。如果为真,则问题只希望删除第一个字符而不是最后一个字符(如果为anny),但是,在数据结尾处永远不会有“,”。因此,我将接受第一个答案,即使用分配给新变量的starttrim。

    17 回复  |  直到 8 年前
        1
  •  12
  •   RickL    16 年前
    string sample = ",liger, unicorn, snipe";
    sample = sample.TrimStart(','); // to remove just the first comma
    

    或者:

    sample = sample.Trim().TrimStart(','); // to remove any whitespace and then the first comma
    
        2
  •  21
  •   Tim Cooper    12 年前
    string s = ",liger, unicorn, snipe";
    s.TrimStart(',');
    
        3
  •  4
  •   Jay Bazuzi Buck Hodges    16 年前

    .NET字符串可以执行trim()和trimstart()。因为它需要 params ,你可以写:

    ",liger, unicorn, snipe".TrimStart(',')
    

    如果要修剪的字符不止一个,可以写:

    ",liger, unicorn, snipe".TrimStart(",; ".ToCharArray())
    
        4
  •  3
  •   justin.m.chase    16 年前

    以下是一种不产生前导逗号的简单方法:

    string[] animals = { "liger", "unicorn", "snipe" };
    string joined = string.Join(", ", animals);
    
        5
  •  2
  •   benPearce    16 年前

    trimstart(“,”)将删除逗号,但由于逗号后有空格,拆分操作将出现问题。 最好只用一个逗号或使用

    拆分(“,”.ToCharArray(),StringSplitOptions.RemoveEmptyEntries);

        6
  •  1
  •   Alexandru    16 年前

    “,利格,独角兽,鹬。”修剪(“,”)->“利格,独角兽,鹬”

        7
  •  1
  •   Magus    16 年前

    尝试string.trim(“,”)并查看它是否满足您的需要。

        8
  •  1
  •   hamishmcn    16 年前

    注意, 起初的 字符串保持不变,trim将返回一个新字符串:

    string s1 = ",abc,d";
    string s2 = s1.TrimStart(",".ToCharArray());
    Console.WriteLine("s1 = {0}", s1);
    Console.WriteLine("s2 = {0}", s2);
    

    印刷品:

    s1 = ,abc,d
    s2 = abc,d
    
        9
  •  1
  •   Wonko    16 年前
    string s = ",liger, unicorn, snipe";
    s = s.TrimStart(',');
    

    将trimstart的结果赋给变量很重要。就像上面说的 TrimStart page ,此方法不修改当前实例的值。相反,它返回一个新的字符串…。

    在.NET中,字符串不变。

        10
  •  1
  •   zx485 potemkin    8 年前

    你可以用这个

    ,利格尔,独角兽,狙击手“.trimstart(',');

        11
  •  0
  •   Bob King    16 年前
    if (s.StartsWith(",")) {
        s = s.Substring(1, s.Length - 1);
    }
    
        12
  •  0
  •   Kieran Benton    16 年前
    string t = ",liger, unicorn, snipe".TrimStart(new char[] {','});
    
        13
  •  0
  •   pilsetnieks    16 年前

    和其他地方一样: string.trim

        14
  •  0
  •   Matt Dawdy    16 年前
        string s = ",liger, tiger";
    
        if (s.Substring(0, 1) == ",")
            s = s.Substring(1);
    
        15
  •  0
  •   chakrit Dutchie432    16 年前

    你的意思是修剪字符串中“,”的所有实例吗?

    在这种情况下,您可以执行以下操作:

    s = s.Replace(",", "");
    
        16
  •  0
  •   Clinton Pierce    16 年前

    只需使用子字符串忽略第一个字符(或将其分配给另一个字符串);

     string o = ",liger, unicorn, snipe";
     string s = o.Substring(1);
    
        17
  •  0
  •   bentford Marko Hlebar    16 年前

    见: http://msdn.microsoft.com/en-us/library/d4tt83f9.aspx

            string animals = ",liger, unicorn, snipe";
    
            //trimmed will contain "liger, unicorn, snipe"
            string trimmed = word.Trim(',');