前言
在 .NET 中,字符串是一個非常重要的數(shù)據(jù)類型。與字符串相關的操作有很多,而刪除字符串的最后一個字符也是較常見的一種。本文我們一起來探討C#實現(xiàn)的方法。
方法
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],指定某一索引范圍的開頭和末尾作為其操作數(shù)。
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、字符串轉字符數(shù)組
Resize 方法
string express = "ZTO,SF,YUNDA,STO,JT,YTO,EMS,JD,";
#region 數(shù)組的 Resize 方法
if (express.Length > 0)
{
// 字符串轉字符數(shù)組
var chars = express.ToCharArray();
// 改變數(shù)組長度
Array.Resize(ref chars, chars.Length-1);
// 輸出
Console.WriteLine(chars.ToString());
}
#endregion
CopyTo方法
string express = "ZTO,SF,YUNDA,STO,JT,YTO,EMS,JD,";
#region 數(shù)組的 CopyTo 方法 注意字符串不能為空字符串
if (express.Length > 0)
{
// 字符串轉字符數(shù)組
var chars = new char[express.Length - 1];
// 將字符串復制到字符數(shù)組
express.CopyTo(0,chars,0,chars.Length);
// 字符數(shù)組轉字符串
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)
{
// 字符串轉字符數(shù)組
var chars = express.Take(express.Length - 1).ToArray();
// 字符數(shù)組轉字符串
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)
{
// 字符串轉字符數(shù)組
var chars = express.SkipLast(1).ToArray();
// 字符數(shù)組轉字符串
string result = new string(chars);
// 輸出
Console.WriteLine(result);
}
#endregion
小結
本文列舉多種方法,有些方法可能不最優(yōu)實現(xiàn),可以根據(jù)具體場景選擇哪種方法。其中字符串內置Substring、Remove在性能、代碼簡潔性上是較好的。如有不到之處,請多多包涵。
該文章在 2024/10/22 12:20:24 編輯過