更改字符串中的第二个字符

时间:2017-09-28 12:33:42

标签: c#

string input = "testeeeeeee";
char[] temp = input.ToCharArray();
var test = Regex.Replace(input.Replace(temp[1].ToString(), "@").Trim(), @"\s+", " ");
Console.WriteLine(test);

这是我现在的代码,我希望我的第二个字符串上的字符串被替换为" @" ,现在问题是每个e都将在@中被替换,如何修复它只会替换第二个char而不再有?

2 个答案:

答案 0 :(得分:8)

一种方法是只为第二个字符分配一个新值:

var input = "testeeeeeee".ToCharArray();
input[1] = '@';

var result = new string(input);

您希望在原始字符串上执行input[1] = @而不是char[],但由于字符串是不可变的,因此您无法更改它并且读取索引器 - 只。

另一种方式(我认为不太可取):

var input = "testeeeeeee";
var result =  input[0] + "@" + string.Concat(input.Skip(2));

对于第二种方式,使用SubString从第二个索引到结尾获取字符串更清晰

答案 1 :(得分:0)

您可以使用Substring功能

friend ostream& operator<<(ostream& os, Genre& g) {
    os << g.getGenre();
    return os;
 }