1

簡単な質問があります。調査を行いましたが、正しい答えが見つかりませんでした。

私はこの文字列を持っています:

|彼女は朝食を食べたい|

|すべての文字を別の文字に置き換えるための答えを見つけました。

|私の考えは、最初のものを{に、最後のものをに置き換えたいということです}

これが簡単であることはわかっていますが、この質問に対する答えは本当に役に立ちます。

前もって感謝します。

4

4 に答える 4

5

使用できますstring.Substring

s = "{" + s.Substring(1, s.Length - 2) + "}";

オンラインでの動作を確認してください: ideone

これは、置換する文字が文字列の最初と最後の文字であることを前提としています。

于 2012-06-16T22:28:30.247 に答える
2

.Net 3 以降を使用していて、拡張メソッドを使用したくない場合は、通常の文字列操作よりもパフォーマンスが少し優れている Lambda を選択できます。

string s = "|she wants to eat breakfast|";
s.Replace(s.ToCharArray().First(ch => ch == '|'), '{'); //this replaces the first '|' char
s.Replace(s.ToCharArray().Last(ch => ch == '|'), '}'); // this replaces the last '|' char
于 2012-06-16T23:12:06.037 に答える
1
string oldString = "|She wants to eat breakfast|";
string newString = "{" + oldString.SubString(1,oldString.Length-2) + "}";

または string.Concat を使用する (文字列の + 演算子の内部実装は string.Concat を呼び出します)

string newString = string.Concat("{",oldString.SubString(1,oldString.Length-2),"}");
于 2012-06-16T22:29:05.967 に答える
0

最速の方法は次のとおりです。

var str = "|She wants to eat breakfast|";

unsafe
{
    fixed (char* pt = str)
    {
        pt[0] = '{';
        pt[str.Length - 1] = '}';
    }
}

Console.WriteLine(str); // Prints: {She wants to eat breakfast}

アンセーフ コードを有効にする必要があります(プロジェクトを右クリックし、[プロパティ] > [ビルド] > [アンセーフ コードを許可] を選択します。

これは、Substring を使用してエッジにブレスレットを追加するよりも約19 倍高速です。

于 2012-06-17T01:48:34.127 に答える