在c#里,改变字符串中的字符只能给这个字符串重新赋值吗?比如说字符串s,内容是"11111",我要把第二位替换为0。我用s[1]可以得到这个字符,但是这个是只读的,有办法只改一个字符吗?

解决方案 »

  1.   

    s.replace(' ')....直接替换不可以吗?
      

  2.   

    .NET中的String类是immutable的,用它的方法改变其内含字符串都会生成一个新实例如果你需要在代码多次改动一个字符串,建议使用StringBuilder类,或者建立一个Char数组,自己维护其改动
      

  3.   

    System.String 是不可变字符串。
    System.Text.StringBuilder 是可变字符串。
      

  4.   

    改一位两位的还好说,如果是要频繁改的话,2楼3楼老大已经说了。。
    string要修改是要重新赋值的。。
    例如,你这个题目就可以这样:
    string str="11111";
    str=str.SubString(0,1)+"0"+str.SubString(2);
      

  5.   

    string 对象里面提供了很多方法;你可以使用replace 或者substring 
      

  6.   

    replace不行吧,比如上面的例子,把所有的内容都替换了,而且要事先知道被替换的值
      

  7.   

    我试过了,StringBuilder 不错,呵呵,结贴