前言
在 .NET 中,字符串是一個(gè)非常重要的數(shù)據(jù)類型。與字符串相關(guān)的操作有很多,而刪除字符串的最后一個(gè)字符也是較常見的一種。本文我們一起來探討C#實(shí)現(xiàn)的方法。
方法
1、字符串的內(nèi)置方法
通過使用字符串類自帶的Substring、Remove、TrimEnd 幾個(gè)內(nèi)置方法。
Substring 方法
string express = "ZTO,SF,YUNDA,STO,JT,YTO,EMS,JD,";
#region Substring 注意空字符串,因?yàn)榇朔椒ú贿m用于空字符串
if (express.Length > 0)
{
// 刪除最后一個(gè)字符
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 注意空字符串,因?yàn)榇朔椒ú贿m用于空字符串
if (express.Length > 0)
{
// 刪除最后一個(gè)字符
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 對已知最后一個(gè)字符的情況
// 刪除最后一個(gè)字符
string result = express.TrimEnd(',');
// 輸出
Console.WriteLine(result);
#endregion
2、范圍運(yùn)算符
范圍運(yùn)算符是.NET 5及以后版本提供的功能特性。它的格式為變量名稱[start..end],指定某一索引范圍的開頭和末尾作為其操作數(shù)。
string express = "ZTO,SF,YUNDA,STO,JT,YTO,EMS,JD,";
#region 范圍運(yùn)算符 .NET 5及以后版本
if (express.Length > 0)
{
// 范圍運(yùn)算符
string result = express[..^1];
// 輸出
Console.WriteLine(result);
}
#endregion
3、字符串轉(zhuǎn)字符數(shù)組
Resize 方法
string express = "ZTO,SF,YUNDA,STO,JT,YTO,EMS,JD,";
#region 數(shù)組的 Resize 方法
if (express.Length > 0)
{
// 字符串轉(zhuǎn)字符數(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)
{
// 字符串轉(zhuǎn)字符數(shù)組
var chars = new char[express.Length - 1];
// 將字符串復(fù)制到字符數(shù)組
express.CopyTo(0,chars,0,chars.Length);
// 字符數(shù)組轉(zhuǎn)字符串
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)
{
// 字符串轉(zhuǎn)字符數(shù)組
var chars = express.Take(express.Length - 1).ToArray();
// 字符數(shù)組轉(zhuǎn)字符串
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)
{
// 字符串轉(zhuǎn)字符數(shù)組
var chars = express.SkipLast(1).ToArray();
// 字符數(shù)組轉(zhuǎn)字符串
string result = new string(chars);
// 輸出
Console.WriteLine(result);
}
#endregion
小結(jié)
本文列舉多種方法,有些方法可能不最優(yōu)實(shí)現(xiàn),可以根據(jù)具體場景選擇哪種方法。其中字符串內(nèi)置Substring、Remove在性能、代碼簡潔性上是較好的。如有不到之處,請多多包涵。
該文章在 2024/10/22 12:20:24 編輯過