C#如何在指定位置插入字符串?

时间:2023-01-03 09:52:59
  string b = "st";
            string sHead = "112233";
         如何才能在t的前面插入sHead,使b等于s112233t?

12 个解决方案

#1


b.Insert(1, sHead);

#2


string str="st";
MessageBox.Show( str.Insert(1, "112233"));

#3


  string b = "opqrst";
            string sHead = "112233";
            sHead.Insert(sHead.LastIndexOf("22"), b);
            MessageBox.Show(sHead);
我这样写,运行后的结果是112233,为什么?

#4


要注意.net对字符串的特殊处理,你这里用b.Insert插入后b的值是不变的,你需要重新定义个字符创来保存新的结果:

            string b = "st";
            string sHead = "112233";
            string newB=b.Insert(1, sHead);
            MessageBox.Show(b);


你试试看就知道b还是原来的st。

#5


引用 3 楼 jhdxhj 的回复:
  string b = "opqrst";
            string sHead = "112233";
            sHead.Insert(sHead.LastIndexOf("22"), b);
            MessageBox.Show(sHead);
我这样写,运行后的结果是112233,为什么?


看我的答复,这是.net对字符串的特殊处理之处。

#6


string b = "opqrst";
            string sHead = "<td width=208 style='width:156pt'></td></tr>";      
            sHead = sHead.Insert(sHead.LastIndexOf("</td>") + "</td>".Length, b);

#7


引用 3 楼 jhdxhj 的回复:
string b = "opqrst";
  string sHead = "112233";
  sHead.Insert(sHead.LastIndexOf("22"), b);
  MessageBox.Show(sHead);
我这样写,运行后的结果是112233,为什么?


正解

#8


引用 7 楼 mychencheng88 的回复:
引用 3 楼 jhdxhj 的回复:
string b = "opqrst";
string sHead = "112233";
sHead.Insert(sHead.LastIndexOf("22"), b);
MessageBox.Show(sHead);
我这样写,运行后的结果是112233,为什么?


正解


string b = "opqrst";
string sHead = "112233";
sHead = sHead.Insert(sHead.LastIndexOf("22"), b);
MessageBox.Show(sHead);

#9


    string str = "aa";
        string bb = "bb";
        string aa= str.Insert(1, bb);
        Response.Write(aa);我试过啦!是对的啊!

#10


学习了

#11


引用 3 楼 jhdxhj 的回复:
string b = "opqrst";
  string sHead = "112233";
  sHead.Insert(sHead.LastIndexOf("22"), b);
  MessageBox.Show(sHead);
我这样写,运行后的结果是112233,为什么?


.net中String比较特殊,有恒定不变性
sHead.Insert(…)、sHead.ToUpper()、sHead.SubString(…)等等之后,sHead的值不变
他只是不断地产生临时字符串对象
所以
string str = "aa";
  string bb = "bb";
  string aa= str.Insert(1, bb);
  Response.Write(aa);//我试过啦!是对的啊!

这样写可以的

#12


建议用StringBuilder

#1


b.Insert(1, sHead);

#2


string str="st";
MessageBox.Show( str.Insert(1, "112233"));

#3


  string b = "opqrst";
            string sHead = "112233";
            sHead.Insert(sHead.LastIndexOf("22"), b);
            MessageBox.Show(sHead);
我这样写,运行后的结果是112233,为什么?

#4


要注意.net对字符串的特殊处理,你这里用b.Insert插入后b的值是不变的,你需要重新定义个字符创来保存新的结果:

            string b = "st";
            string sHead = "112233";
            string newB=b.Insert(1, sHead);
            MessageBox.Show(b);


你试试看就知道b还是原来的st。

#5


引用 3 楼 jhdxhj 的回复:
  string b = "opqrst";
            string sHead = "112233";
            sHead.Insert(sHead.LastIndexOf("22"), b);
            MessageBox.Show(sHead);
我这样写,运行后的结果是112233,为什么?


看我的答复,这是.net对字符串的特殊处理之处。

#6


string b = "opqrst";
            string sHead = "<td width=208 style='width:156pt'></td></tr>";      
            sHead = sHead.Insert(sHead.LastIndexOf("</td>") + "</td>".Length, b);

#7


引用 3 楼 jhdxhj 的回复:
string b = "opqrst";
  string sHead = "112233";
  sHead.Insert(sHead.LastIndexOf("22"), b);
  MessageBox.Show(sHead);
我这样写,运行后的结果是112233,为什么?


正解

#8


引用 7 楼 mychencheng88 的回复:
引用 3 楼 jhdxhj 的回复:
string b = "opqrst";
string sHead = "112233";
sHead.Insert(sHead.LastIndexOf("22"), b);
MessageBox.Show(sHead);
我这样写,运行后的结果是112233,为什么?


正解


string b = "opqrst";
string sHead = "112233";
sHead = sHead.Insert(sHead.LastIndexOf("22"), b);
MessageBox.Show(sHead);

#9


    string str = "aa";
        string bb = "bb";
        string aa= str.Insert(1, bb);
        Response.Write(aa);我试过啦!是对的啊!

#10


学习了

#11


引用 3 楼 jhdxhj 的回复:
string b = "opqrst";
  string sHead = "112233";
  sHead.Insert(sHead.LastIndexOf("22"), b);
  MessageBox.Show(sHead);
我这样写,运行后的结果是112233,为什么?


.net中String比较特殊,有恒定不变性
sHead.Insert(…)、sHead.ToUpper()、sHead.SubString(…)等等之后,sHead的值不变
他只是不断地产生临时字符串对象
所以
string str = "aa";
  string bb = "bb";
  string aa= str.Insert(1, bb);
  Response.Write(aa);//我试过啦!是对的啊!

这样写可以的

#12


建议用StringBuilder