首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
您现在的位置: 程式碼之家 >> 編程語言 >  >> .NET 網頁程式設計 >> C# >> 關於C#

C# 字串格式化輸出完整指南:複合格式、插值字串、ToString 格式字串與對齊控制

     編輯:關於C#

字串格式化三大方式

方式語法適用版本特點
複合格式string.Format("{0:C}", val)1.0+靜態格式字串、文化特性控制
插值字串$"{val:C}"C# 6+語法簡潔、編譯期檢查、效能最佳
ToString 格式val.ToString("C")1.0+單一值、型別專屬格式

標準數值格式字串

指定項名稱範例 (en-US)範例 (zh-TW)
C/c貨幣$123.45NT$123.45
D/d十進位 (整數)0012300123
E/e科學記號1.23E+0021.23E+002
F/f定點小數123.45123.45
G/g一般123.45123.45
N/n數字 (含千分位)1,234.561,234.56
P/p百分比12.35%12.35%
X/x十六進位7B7B

自訂數值格式字串

// 0: 必填數字位,不足補 0
// #: 選填數字位
// .: 小數點
// ,: 千分位分隔 / 縮放
// %: 乘 100 加 %
// ‰: 乘 1000 加 ‰
// E/e: 科學記號指數部

1234.56.ToString("00000.00")   // "01234.56"
1234.56.ToString("##,##0.00")  // "1,234.56"
0.1234.ToString("0.00%")       // "12.34%"
1234.ToString("#,#,,")         // "1" (百萬單位)

日期時間格式字串

DateTime now = DateTime.Now;
// 標準
now.ToString("d")  // 短日期 2024/1/15
now.ToString("t")  // 短時間 14:30
now.ToString("G")  // 一般 2024/1/15 14:30:15

// 自訂
now.ToString("yyyy-MM-dd HH:mm:ss")  // 2024-01-15 14:30:15
now.ToString("yyyy年M月d日 dddd")    // 2024年1月15日 星期一

對齊與填充 (複合格式/插值通用)

// {index,alignment:format}  alignment > 0 右對齊, < 0 左對齊
string.Format("{0,10:N0}", 1234);      // "      1,234"
string.Format("{0,-10:N0}", 1234);     // "1,234      "
$"{1234,10:N0}"                        // 右對齊
$"{1234,-10:N0}"                       // 左對齊

// 表格輸出範例
Console.WriteLine($"{"Name",-15} {"Age",5} {"Score",8:N1}");
foreach (var p in people) {
    Console.WriteLine($"{p.Name,-15} {p.Age,5} {p.Score,8:N1}");
}

文化特性控制

var ci = CultureInfo.GetCultureInfo("zh-TW");
string.Format(ci, "{0:C}", 1234.5); // "NT$1,234.50"

// 固定文化特性 (序列化/日誌/網路傳輸)
string.Format(CultureInfo.InvariantCulture, "{0:yyyy-MM-dd}", DateTime.Now);

效能與最佳實務

  • 熱路徑優先 插值字串 (編譯為 string.Format 或 DefaultInterpolatedStringHandler 零配置)
  • 避免在迴圈中重複 string.Format 相同格式字串,提取為常數
  • 大量字串建構用 StringBuilder + AppendFormat
  • 序列化/日誌/儲存 強制使用 InvariantCulture

字串連接
格式化輸出1
格式化輸出2
對齊範例

本文對應《叩響 C# 之門》第 2.4 節變數的格式化輸出教學內容

  1. 上一篇文章:
  2. 下一篇文章:
Copyright © 程式碼之家 All Rights Reserved