前言
在 .NET 中,字符串是一个非常重要的数据类型。与字符串相关的操作有很多,而删除字符串的最后一个字符也是较常见的一种。本文我们一起来探讨C#实现的方法。
方法
1、字符串的内置方法
通过使用字符串类自带的Substring、Remove、TrimEnd 几个内置方法。
Substring 方法
string express = "ZTO,SF,YUNDA,STO,JT,YTO,EMS,JD,";#region Substring 注意空字符串,因为此方法不适用于空字符串if (express.Length > 0){ // 删除最后一个字符 string result = express.Substring(0, express.Length - 1); // 输出 Console.WriteLine(result); }#endregionConsole.ReadKey();
Remove 方法
string express = "ZTO,SF,YUNDA,STO,JT,YTO,EMS,JD,";#region Remove 注意空字符串,因为此方法不适用于空字符串if (express.Length > 0){ // 删除最后一个字符 string result = express.Remove(express.Length - 1, 1); // 输出 Console.WriteLine(result);}#endregion
TrimEnd 方法
string express = "ZTO,SF,YUNDA,STO,JT,YTO,EMS,JD,";#region TrimEnd 对已知最后一个字符的情况 // 删除最后一个字符 string result = express.TrimEnd(','); // 输出 Console.WriteLine(result);#endregion
2、范围运算符
范围运算符是.NET 5及以后版本提供的功能特性。它的格式为变量名称[start..end],指定某一索引范围的开头和末尾作为其操作数。
string express = "ZTO,SF,YUNDA,STO,JT,YTO,EMS,JD,";#region 范围运算符 .NET 5及以后版本if (express.Length > 0){ // 范围运算符 string result = express[..^1]; // 输出 Console.WriteLine(result);}#endregion
3、字符串转字符数组
Resize 方法
string express = "ZTO,SF,YUNDA,STO,JT,YTO,EMS,JD,";#region 数组的 Resize 方法 if (express.Length > 0) { // 字符串转字符数组 var chars = express.ToCharArray(); // 改变数组长度 Array.Resize(ref chars, chars.Length-1); // 输出 Console.WriteLine(chars.ToString()); }#endregion
CopyTo方法
string express = "ZTO,SF,YUNDA,STO,JT,YTO,EMS,JD,";#region 数组的 CopyTo 方法 注意字符串不能为空字符串 if (express.Length > 0) { // 字符串转字符数组 var chars = new char[express.Length - 1]; // 将字符串复制到字符数组 express.CopyTo(0,chars,0,chars.Length); // 字符数组转字符串 string result = new string(chars); // 输出 Console.WriteLine(result); }#endregion
4、使用 LINQ
string express = "ZTO,SF,YUNDA,STO,JT,YTO,EMS,JD,";#region LINQ Take 方法if (express.Length > 0){ // 字符串转字符数组 var chars = express.Take(express.Length - 1).ToArray(); // 字符数组转字符串 string result = new string(chars); // 输出 Console.WriteLine(result);}#endregion
string express = "ZTO,SF,YUNDA,STO,JT,YTO,EMS,JD,";#region LINQ SkipLast 方法 .NET 5及以后版本if (express.Length > 0){ // 字符串转字符数组 var chars = express.SkipLast(1).ToArray(); // 字符数组转字符串 string result = new string(chars); // 输出 Console.WriteLine(result);}#endregion
小结
本文列举多种方法,有些方法可能不最优实现,可以根据具体场景选择哪种方法。其中字符串内置Substring、Remove在性能、代码简洁性上是较好的。如有不到之处,请多多包涵。
该文章在 2024/10/22 12:20:24 编辑过