有没有一种简短的方法可以在 C# 中替换字符串中的两个字符
本文关键字:替换 字符串 字符 两个 一种 有没有 方法 | 更新日期: 2023-09-27 18:34:42
给定:
var x = "abc";
var x = "[abc]";
我编写了以下内容以删除 [ 和 ] 字符。
x1 = x.Replace("[", "");
x2 = x1.Replace("]", "");
有没有看起来更干净的方法可以做到这一点?例如,我可以一个接一个地替换字符串吗?请注意,如果出现 [ 和 ],它们将始终位于字符串的开头和结尾。
string newstring = x.Trim('[', ']');
例如,我可以一个接一个地替换字符串吗?
是的:
var result = x.Replace("[", "").Replace("]", "");
由于 Replace(( 返回一个字符串,您可以将表达式链接在一起:
var x1 = x.Replace("[", "").Replace("]", "");
请注意,如果出现 [ 和 ],它们将始终位于字符串的开头和结尾。
您需要使用正则表达式来确保严格不替换其他方括号:
string output = Regex.Replace(x, @"^'[|']$", "");
可能是
最有效的方法,使用大字符串和许多要删除的字符:
String input = "[abc]";
String removed = input.RemoveChars(new[] { '[', ']' });
public static String RemoveChars(this string input, char[] charsToRemove)
{
Array.Sort(charsToRemove);
StringBuilder sb = new StringBuilder();
foreach (char c in input)
{
if (Array.BinarySearch(charsToRemove, c) < 0)
sb.Append(c);
}
return sb.ToString();
}
string newstring = x.TrimStart('[').TrimEnd(']');
您应该使用 TrimStart 和 TrimEnd:
string x = "[abc]";
string result = x.TrimStart('[').TrimEnd(']');
这将是最简单的方法,并且具有最佳性能。
在这里,我假设"["将在开头,"]"将在结尾。