如何用另一个字符串覆盖一个字符串?

Bit*_*lue -3 c# string overwrite

如何覆盖字符串?例:

string text = "abcdefghijklmnopqrstuvwxyz".OverwriteWith("hello world", 3);
// text == "abchello worldopqrstuvwxyz"
Run Code Online (Sandbox Code Playgroud)

当然这种方法不存在.但

  • .NET Framework中是否有内置的东西?
  • 如果没有,我怎样才能有效地将字符串写入另一个字符串?

Son*_*nül 5

你只需要使用String.RemoveString.Insert方法一样;

string text = "abcdefghijklmnopqrstuvwxyz";
if(text.Length > "hello world".Length + 3)
{
   text = text.Remove(3, "hello world".Length).Insert(3, "hello world");
   Console.WriteLine(text);
}
Run Code Online (Sandbox Code Playgroud)

输出将是;

abchello worldopqrstuvwxyz
Run Code Online (Sandbox Code Playgroud)

这是一个DEMO.

请记住,字符串是.NET 中的不可变类型.你无法改变它们.即使您认为自己更改了它们,实际上也会创建一个新的字符串对象.

如果你想使用可变字符串,请看一下StringBuilder类.

此类表示类似于字符串的对象,其值是可变的字符序列.该值被认为是可变的,因为它可以在通过追加,删除,替换或插入字符创建后进行修改.


Gus*_*dor 5

简短的回答,你不能.字符串是不可变类型.这意味着一旦创建它们,就无法修改它们.

如果你想在内存中操作字符串,c ++方式,你应该使用StringBuilder.