C#

yang709610485 2008-07-10 04:41:32
一个string变量,我想把他中间的一个字符修改了,如果不把它数组化,既变成char数组,直接修该可以吗?比如说,string str ="yang";str[3]=m;我知道这个不行,有没有其他类似的方法可以办到呢?
...全文
46 4 打赏 收藏 转发到动态 举报
写回复
用AI写文章
4 条回复
切换为时间正序
请发表友善的回复…
发表回复
pp_shy 2008-07-10
  • 打赏
  • 举报
回复
晕,不好意思。回错地方了
pp_shy 2008-07-10
  • 打赏
  • 举报
回复
在“调出堆栈”窗口中能查到
gomoku 2008-07-10
  • 打赏
  • 举报
回复
可以倒是可以,不过你要用批评的眼光看下面代码。
该代码直接修改了string内部的数据,从而违背了字符串恒定(string is immutable)的原则:


public class Program
{
unsafe static void Main()
{
string str = "yang";
string sss = str;

fixed(char* buf = str)
{
buf[3] = 'm';
}

Console.WriteLine(str); //yanm
Console.WriteLine(sss); //yanm
}
}
halk 2008-07-10
  • 打赏
  • 举报
回复

StringBuilder sb = new StringBuilder(str);
sb[3] = m;
str = sb.ToString();

110,960

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术 C#
社区管理员
  • C#
  • AIGC Browser
  • by_封爱
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

让您成为最强悍的C#开发者

试试用AI创作助手写篇文章吧