2

与えられた:

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

[と]文字を削除するために次のようにコーディングしました。

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

これを行うためにもっときれいに見える方法はありますか?たとえば、文字列を次々に置き換えることはできますか?[と]が表示されている場合は、常に文字列の最初と最後に表示されることに注意してください。

4

7 に答える 7

8
string newstring = x.Trim('[', ']');
于 2012-05-21T07:35:58.313 に答える
2

たとえば、文字列を次々に置き換えることはできますか?

はい:

var result = x.Replace("[", "").Replace("]", "");
于 2012-05-21T07:34:42.450 に答える
2

Replace()は文字列を返すため、式を連鎖させることができます。

var x1 = x.Replace("[", "").Replace("]", "");
于 2012-05-21T07:34:45.323 に答える
1

[と]が表示されている場合は、常に文字列の最初と最後に表示されることに注意してください。

正規表現を使用して、他の角かっこが厳密に置き換えられないようにする必要があります。

string output = Regex.Replace(x, @"^\[|\]$", "");
于 2012-05-21T07:40:37.197 に答える
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();
}
于 2012-05-21T07:46:06.907 に答える
0

TrimStart と TrimEnd を使用する必要があります。

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

これが最も簡単な方法であり、最高のパフォーマンスが得られます。

ここでは、'[' が先頭にあり、']' が末尾にあると仮定します。

于 2012-05-21T08:01:14.433 に答える
0
string newstring = x.TrimStart('[').TrimEnd(']');
于 2012-05-21T07:46:11.153 に答える