string str="abcdefes";
str[str.Length-3]='v';
我想通过这方法来改变str的倒数第三个字符‘f’为‘v’
但总是报错“无法对属性或索引器“string.this[int]”赋值 -- 它是只读的”
请问该用什么方法来该倒数第三个字符‘f’为‘v’
谢谢,很急很急哦!!!

解决方案 »

  1.   

    string tmp = str.SubString(0,str.Length-4) + "v" + str.SubString(str.Length-2);
      

  2.   

    string str="abcdefes"; 
    string newstr=str.Replcae("f","v");
    修改以后newstr中的所有f都换成了v,勉强可以符合楼主的要求
    二原来的str中的内容不会发生变化 
      

  3.   

                string str = "abcdefes";
                //str[str.Length - 3] = 'v';
                string tmp = str.Substring(0, str.Length - 4) + "v" + str.Substring(str.Length - 2);
                str = tmp;
      

  4.   

    这样是不行的,假如我的str="abfcdefes";就会出错了
      

  5.   

    不好意思,写错了,应该是
    string tmp = str.Substring(0, str.Length - 3) + "v" + str.Substring(str.Length - 2);如果要把所有‘f’ 都改为‘v’ 的话,就用str.Replcae("f","v"); 
      

  6.   

    你如果一定要这样做,可以参考下:            string str = "abcdefes";
                char[] strr = str.ToCharArray();
                strr[str.Length - 3] = 'v';
                string aa = new string(strr);
      

  7.   

    或者
                char[] tmp = str.ToCharArray();
                tmp[tmp.Length-3] = 'v';
                str = new string(tmp);