前言
在 .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);
}
#endregion
Console.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 编辑过