c#的string变量如何单独修改某一个字符变量?

Footprints明轩 2015-07-22 12:48:08
例如,string str="hello";想要将str修改为“heleo”该怎么办?
...全文
714 11 打赏 收藏 转发到动态 举报
写回复
用AI写文章
11 条回复
切换为时间正序
请发表友善的回复…
发表回复
  • 打赏
  • 举报
回复
Replace,SubString,+……还能怎么的……
  • 打赏
  • 举报
回复
str="heleo";
  • 打赏
  • 举报
回复
[quote=引用 3 楼 ajianchina 的回复:]

static string ReplaceChar(string str, int index, char c)
{
    if (index < 0 || index > str.Length - 1) return str;
    char[] carr = str.ToCharArray();
    carr[index] = c;
    return new string(carr);
}
嗯是这样的。
  • 打赏
  • 举报
回复
string 与 char[] 之间有着直接的对应关系,可以直接转换(无过多性能损耗)。
var s1 = "hello";
var arr = s1.ToArray();
arr[3] = 'e';
var s2 = new string(arr);
xuzuning 2015-07-22
  • 打赏
  • 举报
回复
            var str = "hello";
            var t = new StringBuilder(str);
            t[3] = 'e';
            str = t.ToString();
ajianchina 2015-07-22
  • 打赏
  • 举报
回复
这样应该更简单: 1:

string s = "hello";
s = s.Remove(3, 1);
 s = s.Insert(3, "e");
Console.WriteLine(s);
2:

string s = "hello";
Console.WriteLine((new StringBuilder(s)).Replace("l", "e", 3, 1).ToString());
SomethingJack 2015-07-22
  • 打赏
  • 举报
回复
我感觉他问题没有描述清楚 是不是想动态的这样修改 还是就单单这一个字符串
fudapeng7 2015-07-22
  • 打赏
  • 举报
回复
string对象从初始化后就不能更改,若改变之后就是另外一个string对象了,要对一个string对象进行操作的话 用stringbuild或者stringbuffer
ajianchina 2015-07-22
  • 打赏
  • 举报
回复

static string ReplaceChar(string str, int index, char c)
{
    if (index < 0 || index > str.Length - 1) return str;
    char[] carr = str.ToCharArray();
    carr[index] = c;
    return new string(carr);
}

string s = "hello";
Console.WriteLine(ReplaceChar(s,3,'e'));
输出:“heleo”

110,538

社区成员

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

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

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