首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
您现在的位置: 程式碼之家 >> 編程語言 >  >> 更多程式語言 >> 程式設計綜合問答

C# 字串去除前導零的最高效方法

     編輯:程式設計綜合問答

需求場景

固定長度字串(如 "0000000000201402031002"、"0000000000002014020470"),需移除前導的 '0' 字元,保留後續有效數字。截取長度不固定,單純 Substring 難以處理。

最佳解法:TrimStart('0')

string s = "0000000000201402031002";
string result = s.TrimStart('0'); // "201402031002"

s = "0000000000002014020470";
result = s.TrimStart('0'); // "2014020470"

效能分析

方法時間複雜度分配次數適用性
TrimStart('0')O(n)1 次新字串最佳:原生優化、語意清晰
Regex.Replace("^0+", "")O(n) + Regex 開銷多次過重、效能差
手動迴圈 SubstringO(n)1 次可控但程式碼冗長
LINQ SkipWhileO(n) + 列舉器開銷多次不必要複雜

邊界情況處理

// 全零字串
"0000".TrimStart('0'); // 回傳 "" (空字串)
// 空字串
"".TrimStart('0');     // 回傳 ""
// 無前導零
"123".TrimStart('0');  // 回傳 "123"

若業務要求全零時回傳 "0",可補充:

string cleaned = s.TrimStart('0');
if (cleaned.Length == 0) cleaned = "0";

原始碼參考 (.NET Runtime)

TrimStart 內部使用 Span 就地掃描首個非目標字元索引,再 Slice 建立新字串,無中間分配,極致高效。

總結

TrimStart('0') 是去除字串前導零的標準、最高效、最易讀寫法,無需自行造輪子。

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