与えられた:
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 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();
}
TrimStart と TrimEnd を使用する必要があります。
string x = "[abc]";
string result = x.TrimStart('[').TrimEnd(']');
これが最も簡単な方法であり、最高のパフォーマンスが得られます。
ここでは、'[' が先頭にあり、']' が末尾にあると仮定します。
string newstring = x.TrimStart('[').TrimEnd(']');