前言
在實際業務場景中,我們經常會遇到這種情況:
循環某個數組或集合,拼接字符串,每一次拼接都用逗號隔開,比如:
StringBuilder freezeReason = new StringBuilder(1024);
freezeReason.Append(zsEntity.Chain);
foreach (var fsEntityItem in FsList)
{
freezeReason.Append($" {fsEntityItem.ChannelCode} 凍結了 {fsCash},");
}
但是這樣有一個問題,當循環結束之后,拼接得到的字符串最后有一個逗號,這是不需要的,必須把它去掉,以前通常的做法是使用 for
循環,判斷當前循環體是不是最后一個循環,如果是,拼接時就不加上逗號,但這樣每一次循環都要進行判斷,性能不高,所以現在比較通用的做法都是先拼接,最后再去掉最后的逗號。
在 C# 中,可以使用多種方法來去掉字符串的最后一個字符,本文分享 4 種常見的方法:
1. 使用 Substring 方法
string original = "Hello!";
string result = original.Substring(0, original.Length - 1);
Console.WriteLine(result); // 輸出: Hello
2. 使用 Remove
方法
string original = "Hello!";
string result = original.Remove(original.Length - 1);
Console.WriteLine(result); // 輸出: Hello
3. 使用 StringBuilder.Length
屬性(推薦)
StringBuilder
在處理大量字符串拼接會更高效:
using System.Text;
StringBuilder sb = new StringBuilder("Hello!");
sb.Length--; // 去掉最后一個字符
string result = sb.ToString();
Console.WriteLine(result); // 輸出: Hello
4. 利用 LINQ(適用于處理字符集合)
如果只想處理字符而不直接修改字符串,可以使用 LINQ:
using System;
using System.Linq;
string original = "Hello!";
string result = new string(original.Take(original.Length - 1).ToArray());
Console.WriteLine(result); // 輸出: Hello
總結
C# 對于處理字符串的業務場景,提供了大量的高效的方法,有興趣的童鞋可以繼續深入了解。
有時候,方法就在那里,如何使用就很考驗我們的水平了,用得好,語句簡單而且性能高,用得不好,代碼拖沓可能性能還不高。
最后,在實際處理字符串時,別忘了檢查字符串是否為空,為空異常是一個很高頻而且很嚴重的異常。
該文章在 2024/12/11 9:24:23 編輯過