簡體   English   中英

格式化數字字符串的最簡單方法是什么?

[英]What's the easiest way to format a numeric string?

我有以下字符串:“12345678901”,我希望它的格式為“123.456.789-01”,我目前正在這樣做:

string s = "12345678901";
string formatted = Int64.Parse(s).ToString("000.000.000-00"); // = "123.456.789-01"

有沒有更好的方法來做到這一點,我可以直接做到這一點,而不必將字符串轉換為 int 並再次轉換回字符串?

是的,您可以在不轉換為整數並將整數重新格式化為字符串的情況下獲得結果,而且速度更快。

s = "12345678901";
StringBuilder sb = new StringBuilder(s);
int pos = s.Length - 2;
if (pos > 0) sb.Insert(pos, "-");
pos -= 3;
while (pos > 0)
{
    sb.Insert(pos, ".");
    pos -= 3;
}
string formatted = sb.ToString();

這或多或少是 madrereflection 在評論中告訴你的,唯一的區別是這里的示例使用 StringBuilder 來避免字符串的連續重建。 從簡單的基准測試來看,它比當前的方法快三倍,但當然需要更多的代碼。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM