簡體   English   中英

刪除c#中字符串中前導特殊字符的最快方法

[英]Fastest way to remove the leading special characters in string in c#

我正在使用c#,我有一個字符串

-Xyz
--Xyz
---Xyz
-Xyz-Abc
--Xyz-Abc

我只想刪除任何前導特殊字符,直到字母表出現, 注意:字符串中間的特殊字符將保持不變。 最快的方法是什么?

您可以使用string.TrimStart並傳入要刪除的字符:

var result = yourString.TrimStart('-', '_');

但是,如果要刪除的特殊字符數眾所周知且很小,這只是一個好主意。
如果不是這樣,您可以使用正則表達式:

var result = Regex.Replace(yourString, "^[^A-Za-z0-9]*", "");

我更喜歡這兩種方法:

List<string> strings = new List<string>()
{
    "-Xyz",
    "--Xyz",
    "---Xyz",
    "-Xyz-Abc",
    "--Xyz-Abc"
};

foreach (var s in strings)
{
    string temp;

    // String.Trim Method
    char[] charsToTrim = { '*', ' ', '\'', '-', '_' }; // Add more
    temp = s.TrimStart(charsToTrim);
    Console.WriteLine(temp);

    // Enumerable.SkipWhile Method
    // Char.IsPunctuation Method (se also Char.IsLetter, Char.IsLetterOrDigit, etc.)
    temp = new String(s.SkipWhile(x => Char.IsPunctuation(x)).ToArray());
    Console.WriteLine(temp);
}

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM