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 回答