string str = "Student_123_";
Run Code Online (Sandbox Code Playgroud)
我需要用","替换最后一个字符"_".我是这样做的.
str.Remove(str.Length -1, 1);
str = str + ",";
Run Code Online (Sandbox Code Playgroud)
但是,是否有可能更有效地实现它.可能是一行代码.?? 顺便说一下,最后一个字符可以是任何字符.所以替换不会在这里工作.
orl*_*rlp 55
没有.
在C#中,字符串是不可变的,因此您无法在"就地"更改字符串.您必须首先删除字符串的一部分,然后创建一个新字符串.实际上,这也意味着你的原始代码是错误的,因为str.Remove(str.Length -1, 1);根本不改变str,它返回一个新的字符串!这应该做:
str = str.Remove(str.Length -1, 1) + ",";
Run Code Online (Sandbox Code Playgroud)
B H*_*B H 17
C#.NET让它变得非常简单.
str = str.TrimEnd('_')
Run Code Online (Sandbox Code Playgroud)
这是使用的限制string.StringBuilder如果您需要进行大量此类更改,则可以使用.但是,对于您需要的简单任务而言,这是不值得的.
str = str.Substring(0, str.Length - 1) + ",";
Run Code Online (Sandbox Code Playgroud)
使用 StringBuilder 类
StringBuilder mbuilder = new StringBuilder("Student_123_");
mbuilder[mbuilder.Length-1] = ',';
Console.WriteLine(mbuilder.ToString());
Run Code Online (Sandbox Code Playgroud)
优雅但不是很有效率.用逗号替换str末尾的任何字符.
str = Regex.Replace(str, ".$", ",");
Run Code Online (Sandbox Code Playgroud)