有没有一种简短的方法可以在 C# 中替换字符串中的两个字符

本文关键字:替换 字符串 字符 两个 一种 有没有 方法 | 更新日期: 2023-09-27 18:34:42

给定:

var x = "abc";
var x = "[abc]";

我编写了以下内容以删除 [ 和 ] 字符。

x1 = x.Replace("[", "");
x2 = x1.Replace("]", "");

有没有看起来更干净的方法可以做到这一点?例如,我可以一个接一个地替换字符串吗?请注意,如果出现 [ 和 ],它们将始终位于字符串的开头和结尾。

有没有一种简短的方法可以在 C# 中替换字符串中的两个字符

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(']');

这将是最简单的方法,并且具有最佳性能。

在这里,我假设"["将在开头,"]"将在结尾。