Csharp/C#教程:如何在c#中的字符串中的索引处设置字符?分享


如何在c#中的字符串中的索引处设置字符?

someString[someRandomIdx] = 'g'; 

这会给我一个错误,

我如何实现上述目标?

编辑:

是的它是’string’类型

如果它是string类型,那么你就不能这样做,因为字符串是不可变的 – 一旦设置它们就不能改变它们。

要实现您的需求,您可以使用StringBuilder

 StringBuilder someString = new StringBuilder("someString"); someString[4] = 'g'; 

更新

为什么使用string而不是StringBuilder ? 出于很多原因。 以下是我能想到的一些内容:

C#字符串是不可变的。 您应该使用修改后的内容创建一个新字符串。

  char[] charArr = someString.ToCharArray(); charArr[someRandomIdx] = 'g'; // freely modify the array someString = new string(charArr); // create a new string with array contents. 

如果您绝对必须更改字符串的现有实例,则有一种使用不安全代码的方法:

  public static unsafe void ChangeCharInString(ref string str, char c, int index) { GCHandle handle; try { handle = GCHandle.Alloc(str, GCHandleType.Pinned); char* ptr = (char*)handle.AddrOfPinnedObject(); ptr[index] = c; } finally { try { handle.Free(); } catch(InvalidOperationException) { } } } 

查看本文 ,了解如何在C#中修改字符串内容。 字符串是不可变的,因此必须先将它们转换为中间对象才能进行修改。

你也可以使用Insert()方法,例如somestring.Insert(index,data)

由于没有人提到单线解决方案:

上述就是C#学习教程:如何在c#中的字符串中的索引处设置字符?分享的全部内容,如果对大家有所用处且需要了解更多关于C#学习教程,希望大家多多关注—计算机技术网(www.ctvol.com)!

 someString = someString.Remove(index, 1).Insert(index, "g"); 

本文来自网络收集,不代表计算机技术网立场,如涉及侵权请联系管理员删除。

ctvol管理联系方式QQ:251552304

本文章地址:https://www.ctvol.com/cdevelopment/1000285.html

(0)
上一篇 2021年12月27日
下一篇 2021年12月27日

精彩推荐