我正在使用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);
}
Remove
和Substring
更快吗? - Smartboy