在 C#/.NET Core 中,以下是删除字符串最后一个字符的几种实现方式:
一、使用 Substring 方法
string str = "Hello World!"; string newStr = str.Substring(0, str.Length - 1); Console.WriteLine(newStr);
二、使用 Remove 方法
string str = "Hello World!"; string newStr = str.Remove(str.Length - 1); Console.WriteLine(newStr);
三、使用 ToCharArray 和 Array.Copy 方法
string str = "Hello World!"; char[] charArray = str.ToCharArray(); char[] newCharArray = new char[charArray.Length - 1]; Array.Copy(charArray, newCharArray, charArray.Length - 1); string newStr = new string(newCharArray); Console.WriteLine(newStr);
四、使用 StringBuilder
string str = "Hello World!"; StringBuilder sb = new StringBuilder(str); sb.Length--; string newStr = sb.ToString(); Console.WriteLine(newStr);
五、使用正则表达式
string str = "Hello World!"; string newStr = System.Text.RegularExpressions.Regex.Replace(str, ".$", ""); Console.WriteLine(newStr);
六、循环遍历字符数组手动删除最后一个字符
string str = "Hello World!"; char[] charArray = str.ToCharArray(); char[] newCharArray = new char[charArray.Length - 1]; for (int i = 0; i < charArray.Length - 1; i++) { newCharArray[i] = charArray[i]; } string newStr = new string(newCharArray); Console.WriteLine(newStr);
七、使用 LINQ 的 SkipLast 方法(不太直观且效率可能较低)
string str = "Hello World!"; string newStr = new string(str.ToCharArray().SkipLast(1).ToArray()); Console.WriteLine(newStr);