我有这个代码:
string str = "valta is the best place in the World";
我需要替换第一个符号。当我尝试这个时:
str[0] = 'M';
我收到一个错误。我该怎么做?
最佳答案
字符串是不可变的,这意味着您无法更改字符。相反,您创建新的字符串。
您所要求的可以通过多种方式完成。最合适的解决方案将根据您对原始字符串所做更改的性质而有所不同。你只改变一个角色吗?是否需要插入/删除/追加?
这里有几种方法可以从现有字符串创建新字符串,但首字符不同:
str = 'M' + str.Remove(0, 1);
str = 'M' + str.Substring(1);
上面,新字符串被分配给原始变量str
。
我想补充一点,其他演示 StringBuilder
的答案也非常合适。我不会实例化 StringBuilder
来更改一个字符,但如果需要进行多次更改,StringBuilder
是比我在过程中创建临时新字符串的示例更好的解决方案。 StringBuilder
提供了一个允许许多更改和/或追加操作的可变对象。完成更改后,将使用 .ToString()
方法从 StringBuilder
创建一个不可变字符串。您可以继续对 StringBuilder
对象进行更改,并根据需要使用 .ToString()
创建更多新字符串。
关于c# - 如何更改字符串中的 1 个字符?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8987141/