是否有一种简短的方法来替换C#中字符串中的两个字符?

时间:2012-05-21 07:33:19

标签: c#

假设:

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

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

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

有什么方法看起来更干净吗?我可以举例说一个字符串替换另一个吗?请注意,[和]如果出现,将始终位于字符串的开头和结尾。

7 个答案:

答案 0 :(得分:8)

string newstring = x.Trim('[', ']');

答案 1 :(得分:2)

  

我可以将一个字符串替换为另一个吗?

是:

var result = x.Replace("[", "").Replace("]", "");

答案 2 :(得分:2)

由于Replace()返回一个字符串,您可以将表达式链接在一起:

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

答案 3 :(得分:1)

  

请注意,[和]如果出现,将始终位于字符串的开头和结尾。

您需要使用正则表达式来确保严格没有替换其他方括号:

string output = Regex.Replace(x, @"^\[|\]$", "");

答案 4 :(得分:1)

可能最有效的方法是使用大字符串和许多字符删除:

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();
}

答案 5 :(得分:0)

string newstring = x.TrimStart('[').TrimEnd(']');

答案 6 :(得分:0)

你应该使用TrimStart和TrimEnd:

string x = "[abc]";
string result = x.TrimStart('[').TrimEnd(']');

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

在这里,我假设'['将在开头,']'将在最后。