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

ASP.NET 字串大小寫切換擴充方法實作

     編輯:ASP.NET 基礎

需求

將字串中英文字母大小寫互換:大寫→小寫、小寫→大寫,非字母字元保持不變。

方法一:StringBuilder + Char 判斷

public static string ToggleCase(this string input)
{
    if (string.IsNullOrEmpty(input)) return input;
    var sb = new StringBuilder(input.Length);
    foreach (char c in input)
    {
        if (char.IsLower(c)) sb.Append(char.ToUpper(c));
        else if (char.IsUpper(c)) sb.Append(char.ToLower(c));
        else sb.Append(c);
    }
    return sb.ToString();
}

方法二:LINQ 簡潔寫法

public static string ToggleCaseLinq(this string input)
{
    return string.IsNullOrEmpty(input) ? input :
        new string(input.Select(c => char.IsLower(c) ? char.ToUpper(c) :
                                   char.IsUpper(c) ? char.ToLower(c) : c).ToArray());
}

效能比較

方法分配次數速度可讀性
StringBuilder 迴圈1 次 (最終 ToString)最快佳
LINQ Select + ToArray2 次 (陣列 + 字串)稍慢極佳
string 串接 (+=)N 次 (每次新字串)最慢差

建議採用 StringBuilder 版本 作為通用擴充方法。

使用範例

string s = "Hello World 123!";
string t = s.ToggleCase(); // "hELLO wORLD 123!"

補充:Unicode 完整支援

char.IsLower/IsUpper/ToUpper/ToLower 皆依 Unicode 標準運作,支援希臘文、西里爾文、擴展拉丁字母等,無需額外處理。

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