IRONSOFTWAREHOME
開發者更新

C# Reverse String(對於開發者的運行原理)

Jacob Mellor,首席技術官 @ Team Iron
Jacob Mellor
Updated: 2026年4月21日

字串操作是程式設計的基本方面,其中一個常見任務是反轉輸入字串。 在C#中,有幾種方法可以完成此任務,例如使用while迴圈,各自具有其優勢、劣勢和最佳使用情境。 在本文中,我們將探討在C#中反轉字串或字元陣列的各種方法,並提供不同情境和邊界情況的程式碼範例。 此外,我們將介紹一個出色的PDF生成程式庫,名為來自Iron Software的IronPDF。

1. 使用內建函式

C#提供了幾個用於字串操作的內建函式,其中一個是Array.Reverse(),可用於反轉字元陣列或表示字串的char陣列。 以下是reverse方法的程式碼範例:

public class Program
{
    // Main method: entry point of the program
    public static void Main()
    {
        string original = "AwesomeIronPDF"; // String variable
        char[] charArray = original.ToCharArray(); // Convert string to character array
        Array.Reverse(charArray); // Reverse the character array
        string reversed = new string(charArray); // Create a new reversed string
        Console.WriteLine(reversed); // Output: FDPnorIemosewA
    }
}

優點

  • 簡單明瞭的程式碼。
  • 利用內建函式,減少自定義實現的需求。

缺點

  • 需要將字串轉換為字元陣列,會消耗額外的記憶體。
  • 不適合對效能要求高的情境。

2. 使用StringBuilder

在C#中反轉字串的另一種方法是利用StringBuilder類,這提供了高效的字串操作。 以下是使用StringBuilder反轉字串的方法:

public class Program
{
    // Main method: entry point of the program
    public static void Main()
    {
        string someText = "AwesomeIronPDF"; // String variable
        StringBuilder sb = new StringBuilder(); // Create a StringBuilder instance
        for (int i = someText.Length - 1; i >= 0; i--)
        {
            sb.Append(someText[i]); // Append characters in reverse order
        }
        string reversed = sb.ToString(); // Convert StringBuilder to string
        Console.WriteLine(reversed); // Output: FDPnorIemosewA
    }
}

優點

  • 高效的記憶體使用,特別是對於大型字串。
  • 適合效能至關重要的情境。

缺點

  • 需要手動遍歷原始字串的字元。
  • 與使用內建函式相比,略顯冗長。

3. 遞迴方法

遞迴方法也可用於在C#中反轉字串。 此方法涉及遞迴地從字串的兩端交換字元,直到整個字串被反轉。 以下是一個實現:

public class Program
{
    // Main method: entry point of the program
    public static void Main()
    {
        string someText = "AwesomeIronPDF"; // Random string
        string reversed = ReverseString(someText); // Reverse a string
        Console.WriteLine(reversed); // Output: FDPnorIemosewA
    }

    // Recursive method to reverse a string
    public static string ReverseString(string str) 
    {
        if (str.Length <= 1)
            return str;
        return ReverseString(str.Substring(1)) + str[0]; // Recursive call and string concatenation
    }
}

優點

  • 優雅而簡潔的程式碼。
  • 在偏好或需要使用遞迴的情境中可能有用。

缺點

  • 由於遞迴函式調用,對於極長的字串可能導致堆疊溢出。
  • 與迭代方法相比效率較低,尤其是對於大型字串。

邊界情況

在反轉字串時,考慮邊界情況對於確保健壯性和正確性至關重要。 需要考慮的一些邊界情況包括:

  • **空字串:**處理輸入字串為空的情境。
  • **Null字串:**處理輸入字串為Null的情境。
  • **帶有特殊字元的字串:**確保特殊字元在反轉過程中得到正確處理。

使用C#字串反轉方法生成PDF文件

IronPDF在HTML到PDF轉換中表現出色,確保精確保留原始佈局和樣式。 對於從基於網頁的內容如報告、發票和文件生成PDF,這是完美的解決方案。 IronPDF支持HTML文件、URL和原始HTML字串,輕鬆生成高品質的PDF文件。

using IronPdf;

class Program
{
    // Main method: entry point of the program
    static void Main(string[] args)
    {
        var renderer = new ChromePdfRenderer(); // Create a PDF renderer

        // 1. Convert HTML String to PDF
        var htmlContent = "<h1>Hello, IronPDF!</h1><p>This is a PDF from an HTML string.</p>";
        var pdfFromHtmlString = renderer.RenderHtmlAsPdf(htmlContent); // Render HTML to PDF
        pdfFromHtmlString.SaveAs("HTMLStringToPDF.pdf"); // Save the PDF file

        // 2. Convert HTML File to PDF
        var htmlFilePath = "path_to_your_html_file.html"; // Specify the path to your HTML file
        var pdfFromHtmlFile = renderer.RenderHtmlFileAsPdf(htmlFilePath); // Render HTML file to PDF
        pdfFromHtmlFile.SaveAs("HTMLFileToPDF.pdf"); // Save the PDF file

        // 3. Convert URL to PDF
        var url = "http://ironpdf.com"; // Specify the URL
        var pdfFromUrl = renderer.RenderUrlAsPdf(url); // Render URL to PDF
        pdfFromUrl.SaveAs("URLToPDF.pdf"); // Save the PDF file
    }
}

首先從Visual Studio建立一個控制台應用程式。

C#反轉字串(對開發者的運作方式):圖1 - 控制台應用程式

提供專案名稱和位置。

C#反轉字串(對開發者的運作方式):圖2 - 專案配置

選擇.NET版本。

C#反轉字串(對開發者的運作方式):圖3 - 目標框架

將IronPDF安裝到建立的專案中。

C#反轉字串(對開發者的運作方式):圖4 - IronPDF

這也可以使用下面的命令行完成。

> dotnet add package IronPdf --version 2024.4.2

編寫下列程式碼以演示字串反轉。

public class Program
{
    // Main method: entry point of the program
    public static void Main()
    {
        var content = "<h1>Demonstrate IronPDF with C# LinkedList</h1>";
        content += "<h2>1. Using Array.Reverse Method</h2>";
        string someText = "AwesomeIronPDF"; // New string variable
        content += $"<p>Input String: {someText}</p>";
        char[] charArray = someText.ToCharArray(); // Convert string to character array
        Array.Reverse(charArray); // Reverse the character array
        string reversed1 = new string(charArray); // Create a new reversed string
        Console.WriteLine(reversed1); // Output: FDPnorIemosewA
        content += $"<p>Output: {reversed1}</p>";
        content += "<h2>2. Using StringBuilder</h2>";
        StringBuilder sb = new StringBuilder(); // Create a StringBuilder instance
        content += $"<p>Input String: {someText}</p>";
        for (int i = someText.Length - 1; i >= 0; i--)
        {
            sb.Append(someText[i]); // Append characters in reverse order
        }
        string reversed2 = sb.ToString(); // Convert StringBuilder to string
        Console.WriteLine(reversed2); // Output: FDPnorIemosewA
        content += $"<p>Output: {reversed2}</p>";
        content += "<h2>3. Using Recursive Approach</h2>";
        content += $"<p>Input String: {someText}</p>";
        string reversed3 = ReverseString(someText); // Reverse a string
        Console.WriteLine(reversed3); // Output: FDPnorIemosewA
        content += $"<p>Output: {reversed3}</p>";
        // Create Renderer
        var renderer = new ChromePdfRenderer(); // Create a PDF renderer
        // Create a PDF from HTML string
        var pdf = renderer.RenderHtmlAsPdf(content); // Render HTML to PDF
        // Save to a file or Stream
        pdf.SaveAs("reverseString.pdf"); // Save the PDF file
    }

    // Recursive method to reverse a string
    public static string ReverseString(string str)
    {
        if (str.Length <= 1)
            return str;
        return ReverseString(str.Substring(1)) + str[0]; // Recursive call and string concatenation
    }
}

輸出

C#反轉字串(對開發者的運作方式):圖5 - PDF輸出

授權(IronPDF提供試用)

IronPDF程式庫需要授權才能執行應用程式。 更多資訊可以在IronPDF授權資訊頁面上找到。

可以從IronPDF試用授權頁面獲得試用授權。

將密鑰貼到下面的appSettings.json檔案中。

{
  "IronPdf.License.LicenseKey": "The Key Goes Here"
}
JSON

結論

在C#中反轉字串是具有多種方法和考慮因素的常見程式設計任務。 無論您偏好內建函式、StringBuilder,還是遞迴方法,每種方法都有其優勢、劣勢和最佳使用情境。 通過理解這些方法並考慮邊界情況,您可以在C#中有效地反轉字串,以符合您的特定要求。 根據效能、記憶體使用和特殊字元處理來選擇最符合您需求的方法。

使用IronPDF程式庫進行C# PDF操作,開發者可以獲得開發現代應用程式的高級技能。

Jacob Mellor,首席技術官 @ Team Iron
首席技術官

Jacob Mellor是Iron Software的首席技術官,一位在C# PDF技術上開創先河的遠見工程師。作為Iron Software核心程式碼庫的原開發者,他從創立以來就一直在塑造公司的產品架構,與首席執行官Cameron Rimington一起將公司轉變為服務於NASA、特斯拉和全球政府公司的50多名人員的公司。

...
閱讀更多

相關文章

Key in blue circle

立即免費取得 30 天試用金鑰。

Your trial license will be sent to your email address

無任何限制。100% 解鎖。無需信用卡。

OR
bullet_checked無需信用卡或建立帳號無任何限制。100% 解鎖。無需信用卡。
  • Logo Aetna
  • Logo NASA
  • Logo GE
  • Logo Porsche
  • Logo USDA
  • Logo Qatar
Join Millions of Engineers who’ve tried Iron Suite
預訂您的免費現場演示
Booking Badge

受到全球數百萬工程師的信任

Iron Software的客戶標誌
獲取您的無義務諮詢
填寫以下表格或電子郵件sales@ironsoftware.com
您的詳細資訊將始終保密。
受到全球數百萬工程師的信任
Iron Software的客戶標誌
立即獲取您的30天試用金鑰。
無需信用卡或帳戶建立
C# 用於PDF的NuGet程式庫
使用NuGet安裝

版本: 2026.9

PM > Install-Package IronPdf
nuget.org/packages/IronPdf/
  1. 在解決方案資源管理器,右鍵點選參考,管理NuGet包
  2. 選擇瀏覽並搜尋"IronPdf"
  3. 選擇套件並安裝
C# PDF DLL
下載DLL

版本: 2026.9

或者點擊此處下載Windows安裝程式。

  1. 下載並解壓IronPDF到類似~/Libs的位置,位於您的解決方案目錄中
  2. 在Visual Studio解決方案資源管理器,右鍵點選參考。選擇瀏覽,"IronPdf.dll"

授權從$999起