鉴于:
var x = "abc";
var x = "[abc]";
我编写了以下代码以删除 [ 和 ] 字符。
x1 = x.Replace("[", "");
x2 = x1.Replace("]", "");
有什么方法看起来更干净吗?例如,我可以一个接一个地替换字符串吗?请注意,如果出现 [ 和 ] 将始终在字符串的开头和结尾找到。
鉴于:
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 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 output = Regex.Replace(x, @"^\[|\]$", "");
string newstring = x.TrimStart('[').TrimEnd(']');
您应该使用 TrimStart 和 TrimEnd:
string x = "[abc]";
string result = x.TrimStart('[').TrimEnd(']');
这将是最简单的方法,并且将具有最佳性能。
在这里,我假设'['将在开头,']'将在结尾。