前言
在實(shí)際業(yè)務(wù)場(chǎng)景中,我們經(jīng)常會(huì)遇到這種情況:
循環(huán)某個(gè)數(shù)組或集合,拼接字符串,每一次拼接都用逗號(hào)隔開(kāi),比如:
StringBuilder freezeReason = new StringBuilder(1024);
freezeReason.Append(zsEntity.Chain);
foreach (var fsEntityItem in FsList)
{
freezeReason.Append($" {fsEntityItem.ChannelCode} 凍結(jié)了 {fsCash},");
}
但是這樣有一個(gè)問(wèn)題,當(dāng)循環(huán)結(jié)束之后,拼接得到的字符串最后有一個(gè)逗號(hào),這是不需要的,必須把它去掉,以前通常的做法是使用 for
循環(huán),判斷當(dāng)前循環(huán)體是不是最后一個(gè)循環(huán),如果是,拼接時(shí)就不加上逗號(hào),但這樣每一次循環(huán)都要進(jìn)行判斷,性能不高,所以現(xiàn)在比較通用的做法都是先拼接,最后再去掉最后的逗號(hào)。
在 C# 中,可以使用多種方法來(lái)去掉字符串的最后一個(gè)字符,本文分享 4 種常見(jiàn)的方法:
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
在處理大量字符串拼接會(huì)更高效:
using System.Text;
StringBuilder sb = new StringBuilder("Hello!");
sb.Length--; // 去掉最后一個(gè)字符
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
總結(jié)
C# 對(duì)于處理字符串的業(yè)務(wù)場(chǎng)景,提供了大量的高效的方法,有興趣的童鞋可以繼續(xù)深入了解。
有時(shí)候,方法就在那里,如何使用就很考驗(yàn)我們的水平了,用得好,語(yǔ)句簡(jiǎn)單而且性能高,用得不好,代碼拖沓可能性能還不高。
最后,在實(shí)際處理字符串時(shí),別忘了檢查字符串是否為空,為空異常是一個(gè)很高頻而且很?chē)?yán)重的異常。
該文章在 2024/12/11 9:24:23 編輯過(guò)