跳至頁尾內容
開發者更新

C# 字串替換(開發者的工作原理)

無論您是程式設計的新手,還是只是想更好地理解如何在C#中操作字串,您來對地方了。 在本教程中,我們將通過可觸及的實際範例和敘事探索C#中的replace方法,使其引人入勝且易於跟隨。

基礎: 什麼是字串?

在深入了解"字串replace"方法之前,讓我們先了解字串的基本知識。 字串是一系列可以包含字母、數字和符號的字元序列。 在C#中,字串由string資料型別表示。 它們是程式中處理文字的基本要素,並具有豐富的內建方法來操縱它們。 其中一個方法是我們將在本教程中重點介紹的"替換"方法。

介紹替換方法

想像您正在編寫一個需要使用者輸入句子的應用程式。 您的應用程式需要將特定單詞或字元替換為新的單詞或字元。 這就是C#中的replace方法派上用場的地方。

replace方法是一個內建函式,允許您將指定的Unicode字元或子字串的所有出現替換為新的字串。 假設您有以下字串:"我愛冰淇淋。" 您想用"巧克力"替換單詞"冰",以建立新的字串,讀作"我愛巧克力淇淋。" 替換方法使這項任務變得簡單且高效。

使用替換方法:逐步指南

要使用替換方法,請遵循以下簡單步驟:

  1. 聲明一個包含原始文字的字串變數。
  2. 在指定的字串上調用replace方法,提供要替換的字元或子字串以及新的字串。
  3. 將結果儲存在新的字串變數中或更新原始字串。

以下是展示這些步驟的程式碼範例:

// Declare the original text
string originalText = "I love ice cream.";

// Use the Replace method to replace 'ice' with 'chocolate'
string newText = originalText.Replace("ice", "chocolate");

// Output the modified string
Console.WriteLine(newText);
// Declare the original text
string originalText = "I love ice cream.";

// Use the Replace method to replace 'ice' with 'chocolate'
string newText = originalText.Replace("ice", "chocolate");

// Output the modified string
Console.WriteLine(newText);
' Declare the original text
Dim originalText As String = "I love ice cream."

' Use the Replace method to replace 'ice' with 'chocolate'
Dim newText As String = originalText.Replace("ice", "chocolate")

' Output the modified string
Console.WriteLine(newText)
$vbLabelText   $csharpLabel

此程式碼片段將輸出修改後的字串:"我愛巧克力淇淋。"

替換方法的不同變體

在C#中,替換方法有兩個重載版本,以滿足不同的需求。 讓我們仔細看看它們:

替換指定的Unicode字元

替換方法的第一個版本允許您將指定的Unicode字元替換為新字元。 這個版本的語法是:

public string Replace(char oldChar, char newChar);
public string Replace(char oldChar, char newChar);
public String Replace(Char oldChar, Char newChar)
$vbLabelText   $csharpLabel

這是展示其用法的範例:

// Original string with numbers
string originalText = "H3ll0 W0rld!";

// Replace '3' with 'e' and '0' with 'o'
string newText = originalText.Replace('3', 'e').Replace('0', 'o');

// Output the modified string
Console.WriteLine(newText);
// Original string with numbers
string originalText = "H3ll0 W0rld!";

// Replace '3' with 'e' and '0' with 'o'
string newText = originalText.Replace('3', 'e').Replace('0', 'o');

// Output the modified string
Console.WriteLine(newText);
' Original string with numbers
Dim originalText As String = "H3ll0 W0rld!"

' Replace '3' with 'e' and '0' with 'o'
Dim newText As String = originalText.Replace("3"c, "e"c).Replace("0"c, "o"c)

' Output the modified string
Console.WriteLine(newText)
$vbLabelText   $csharpLabel

輸出將是:"Hello World!"

替換子字串

第二個replace方法的版本允許您將指定子字串替換為新的字串。 這個版本的語法是:

public string Replace(string oldValue, string newValue);
public string Replace(string oldValue, string newValue);
public String Replace(String oldValue, String newValue)
$vbLabelText   $csharpLabel

這是展示其用法的範例:

// Original string
string originalText = "I have a red car and a red hat.";

// Replace "red" with "blue"
string newText = originalText.Replace("red", "blue");

// Output the modified string
Console.WriteLine(newText);
// Original string
string originalText = "I have a red car and a red hat.";

// Replace "red" with "blue"
string newText = originalText.Replace("red", "blue");

// Output the modified string
Console.WriteLine(newText);
' Original string
Dim originalText As String = "I have a red car and a red hat."

' Replace "red" with "blue"
Dim newText As String = originalText.Replace("red", "blue")

' Output the modified string
Console.WriteLine(newText)
$vbLabelText   $csharpLabel

輸出將是:"我有一輛藍色的車和一頂藍色的帽子。"

大小寫敏感性與替換方法

重要的是要注意,替換方法是大小寫敏感的。這意味著如果您想要替換指定的Unicode字元或子字串,其大小寫必須完全匹配。 例如,考慮以下程式碼片段:

// Original string with mixed casing
string originalText = "Cats are great pets, but some people prefer CATS.";

// Replace uppercase "CATS" with "dogs"
string newText = originalText.Replace("CATS", "dogs");

// Output the modified string
Console.WriteLine(newText);
// Original string with mixed casing
string originalText = "Cats are great pets, but some people prefer CATS.";

// Replace uppercase "CATS" with "dogs"
string newText = originalText.Replace("CATS", "dogs");

// Output the modified string
Console.WriteLine(newText);
' Original string with mixed casing
Dim originalText As String = "Cats are great pets, but some people prefer CATS."

' Replace uppercase "CATS" with "dogs"
Dim newText As String = originalText.Replace("CATS", "dogs")

' Output the modified string
Console.WriteLine(newText)
$vbLabelText   $csharpLabel

輸出將是:"貓是很好的寵物,但有些人更喜歡狗。"

請注意,只有大寫的"CATS"被替換,小寫的"Cats"保持不變。 如果您想執行不區分大小寫的替換,您需要將原始字串和搜尋字串轉換為相同的大小寫(上或下),然後執行替換。 這裡有一個例子:

// Original string
string originalText = "Cats are great pets, but some people prefer CATS.";

// Convert the original string to lowercase
string lowerCaseText = originalText.ToLower();

// Replace "cats" with "dogs" in the lowercase string
string newText = lowerCaseText.Replace("cats", "dogs");

// Output the modified string
Console.WriteLine(newText);
// Original string
string originalText = "Cats are great pets, but some people prefer CATS.";

// Convert the original string to lowercase
string lowerCaseText = originalText.ToLower();

// Replace "cats" with "dogs" in the lowercase string
string newText = lowerCaseText.Replace("cats", "dogs");

// Output the modified string
Console.WriteLine(newText);
' Original string
Dim originalText As String = "Cats are great pets, but some people prefer CATS."

' Convert the original string to lowercase
Dim lowerCaseText As String = originalText.ToLower()

' Replace "cats" with "dogs" in the lowercase string
Dim newText As String = lowerCaseText.Replace("cats", "dogs")

' Output the modified string
Console.WriteLine(newText)
$vbLabelText   $csharpLabel

輸出將是:"狗是很好的寵物,但有些人更喜歡狗。"

請記住,這種方法也會改變整個字串的大小寫。 如果您想保留原始大小寫,您可以使用RegexOptions.IgnoreCase標誌。

鏈式替換方法的威力

您還可以連接多個替換方法,以便在一行程式碼中執行多次替換。 這在需要將多個字元或子字串替換為不同的新字串時特別有用。 這裡有一個例子:

// Original string with numbers
string originalText = "H3ll0 W0rld!";

// Replace '3' with 'e' and '0' with 'o' using chained Replace methods
string newText = originalText.Replace('3', 'e').Replace('0', 'o');

// Output the modified string
Console.WriteLine(newText);
// Original string with numbers
string originalText = "H3ll0 W0rld!";

// Replace '3' with 'e' and '0' with 'o' using chained Replace methods
string newText = originalText.Replace('3', 'e').Replace('0', 'o');

// Output the modified string
Console.WriteLine(newText);
' Original string with numbers
Dim originalText As String = "H3ll0 W0rld!"

' Replace '3' with 'e' and '0' with 'o' using chained Replace methods
Dim newText As String = originalText.Replace("3"c, "e"c).Replace("0"c, "o"c)

' Output the modified string
Console.WriteLine(newText)
$vbLabelText   $csharpLabel

輸出將是:"Hello World!"

正則表達式與替換方法

雖然replace方法非常適合簡單的字串替換,但在複雜的情況下您可能需要更高級的功能。 在這種情況下,您可以使用正則表達式和Regex.Replace方法來執行高級字串操作。

Regex.Replace方法允許您在原始字串中搜尋某個模式並將其替換為新字串。 您可以使用正則表達式來匹配模式,指定選項如不區分大小寫,甚至使用捕獲組來進行動態替換。

以下是使用Regex.Replace方法將所有模式出現替換為新字串的範例:

using System.Text.RegularExpressions;

// Original text with numbers
string originalText = "100 cats, 25 dogs, and 50 birds.";

// Regular expression pattern to match one or more digits
string pattern = @"\d+";

// Replace all digit sequences with the word "many"
string newText = Regex.Replace(originalText, pattern, "many");

// Output the modified string
Console.WriteLine(newText);
using System.Text.RegularExpressions;

// Original text with numbers
string originalText = "100 cats, 25 dogs, and 50 birds.";

// Regular expression pattern to match one or more digits
string pattern = @"\d+";

// Replace all digit sequences with the word "many"
string newText = Regex.Replace(originalText, pattern, "many");

// Output the modified string
Console.WriteLine(newText);
Imports System.Text.RegularExpressions

' Original text with numbers
Private originalText As String = "100 cats, 25 dogs, and 50 birds."

' Regular expression pattern to match one or more digits
Private pattern As String = "\d+"

' Replace all digit sequences with the word "many"
Private newText As String = Regex.Replace(originalText, pattern, "many")

' Output the modified string
Console.WriteLine(newText)
$vbLabelText   $csharpLabel

輸出將是:"好多貓,好多狗,和好多鳥。"

在此例中,我們使用正則表達式模式\d+來匹配任意一個或多位數字的序列,並將它們替換為單詞"好多"。

IronPDF: Generating PDFs with String Replacement in C

您可以結合IronPDF強大的HTML到PDF轉換能力和C#字串替換方法來建立動態的PDF文件。

using IronPdf;

class Program
{
    static void Main(string[] args)
    {
        var renderer = new ChromePdfRenderer();

        // 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);
        pdfFromHtmlString.SaveAs("HTMLStringToPDF.pdf");

        // 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);
        pdfFromHtmlFile.SaveAs("HTMLFileToPDF.pdf");

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

class Program
{
    static void Main(string[] args)
    {
        var renderer = new ChromePdfRenderer();

        // 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);
        pdfFromHtmlString.SaveAs("HTMLStringToPDF.pdf");

        // 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);
        pdfFromHtmlFile.SaveAs("HTMLFileToPDF.pdf");

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

Friend Class Program
	Shared Sub Main(ByVal args() As String)
		Dim renderer = New ChromePdfRenderer()

		' Convert HTML String to PDF
		Dim htmlContent = "<h1>Hello, IronPDF!</h1><p>This is a PDF from an HTML string.</p>"
		Dim pdfFromHtmlString = renderer.RenderHtmlAsPdf(htmlContent)
		pdfFromHtmlString.SaveAs("HTMLStringToPDF.pdf")

		' Convert HTML File to PDF
		Dim htmlFilePath = "path_to_your_html_file.html" ' Specify the path to your HTML file
		Dim pdfFromHtmlFile = renderer.RenderHtmlFileAsPdf(htmlFilePath)
		pdfFromHtmlFile.SaveAs("HTMLFileToPDF.pdf")

		' Convert URL to PDF
		Dim url = "http://ironpdf.com" ' Specify the URL
		Dim pdfFromUrl = renderer.RenderUrlAsPdf(url)
		pdfFromUrl.SaveAs("URLToPDF.pdf")
	End Sub
End Class
$vbLabelText   $csharpLabel

IronPDF入門

要開始使用IronPDF進行PDF生成,您首先需要安裝IronPDF NuGet套件。 您可以在套件管理器控制台中運行以下命令來做到這一點:

Install-Package IronPdf

或者,您可以在Visual Studio中的NuGet包管理器中搜尋"IronPDF"並從那裡安裝。

使用字串替換建立PDF

假設您想要從HTML建立一份具有占位符替代的PDF報告,用於顯示為不同使用者自定義的問候語。 您可以使用C#字串替換方法替換HTML模板中的占位符為實際的使用者資料,然后使用IronPDF將HTML轉換為PDF文件。

以下是如何做到這一點的逐步指南:

建立帶有使用者資料佔位符的HTML模板。


<!DOCTYPE html>
<html>
<head>
    <title>Personalized Greeting</title>
</head>
<body>
    <h1>Hello, {USERNAME}!</h1>
    <p>Welcome to our platform. Your email address is {EMAIL}.</p>
</body>
</html>

<!DOCTYPE html>
<html>
<head>
    <title>Personalized Greeting</title>
</head>
<body>
    <h1>Hello, {USERNAME}!</h1>
    <p>Welcome to our platform. Your email address is {EMAIL}.</p>
</body>
</html>
HTML

使用C#字串替換方法將佔位符替換為實際的使用者資料。

// Read the HTML template from a file
string htmlTemplate = File.ReadAllText("greeting_template.html");

// Replace placeholders with actual user data
string personalizedHtml = htmlTemplate.Replace("{USERNAME}", "John Doe")
                                      .Replace("{EMAIL}", "john.doe@example.com");
// Read the HTML template from a file
string htmlTemplate = File.ReadAllText("greeting_template.html");

// Replace placeholders with actual user data
string personalizedHtml = htmlTemplate.Replace("{USERNAME}", "John Doe")
                                      .Replace("{EMAIL}", "john.doe@example.com");
' Read the HTML template from a file
Dim htmlTemplate As String = File.ReadAllText("greeting_template.html")

' Replace placeholders with actual user data
Dim personalizedHtml As String = htmlTemplate.Replace("{USERNAME}", "John Doe").Replace("{EMAIL}", "john.doe@example.com")
$vbLabelText   $csharpLabel

使用IronPDF將個性化的HTML轉換為PDF文件。

using IronPdf;

var renderer = new ChromePdfRenderer();

// Convert the personalized HTML to a PDF document
PdfDocument pdfDocument = renderer.RenderHtmlAsPdf(personalizedHtml);

// Save the PDF document to a file
pdfDocument.SaveAs("PersonalizedGreeting.PDF");
using IronPdf;

var renderer = new ChromePdfRenderer();

// Convert the personalized HTML to a PDF document
PdfDocument pdfDocument = renderer.RenderHtmlAsPdf(personalizedHtml);

// Save the PDF document to a file
pdfDocument.SaveAs("PersonalizedGreeting.PDF");
Imports IronPdf

Private renderer = New ChromePdfRenderer()

' Convert the personalized HTML to a PDF document
Private pdfDocument As PdfDocument = renderer.RenderHtmlAsPdf(personalizedHtml)

' Save the PDF document to a file
pdfDocument.SaveAs("PersonalizedGreeting.PDF")
$vbLabelText   $csharpLabel

C# 字串替換(如何對開發者作用)圖1 - 輸出

就這樣! 您已成功使用C# replace方法和IronPDF建立了個性化的PDF文件。

結論

通過結合IronPDF的強大功能和C# replace方法的靈活性,您可以建立專為特定使用者或情境定制的動態PDF文件。 這種方法不僅限於個性化問候語——您可以將其用於生成發票、報告、證書,等等。

IronPDF提供IronPDF免費試用 ,讓您無需任何初始投資即可探索其功能。 如果您發現它非常符合您的PDF生成需求,授權價格從$999開始。

常見問題

如何使用C#替換字串中的子字串?

在C#中,您可以使用replace方法來將字串中所有指定子字串替換為新字串。此方法對於在應用程式中動態更新文字等任務非常實用。

PDF 程式庫如何幫助在 C# 中生成動態 PDF?

像 IronPDF 這樣的 PDF 程式庫可以通過將 HTML 模版中的占位符替換為實際資料來建立動態的 PDF 文件。這可以通過使用 C# 的replace方法在將內容轉換為 PDF 之前進行更新。

您能夠在 C# 中一次性替換多個字串嗎?

是的,在C#中,您可以將多個replace方法串連在一起以在單行程式碼中執行多次替換,從而高效地進行全面的文字更新。

是否可以在C#中的replace方法中使用正則表達式?

是的,對於更複雜的字串操作,您可以在C#中使用Regex.Replace方法來搭配正則表達式使用。這允許您搜尋和替換模式而不是固定子字串。

如何在 C# 中將 HTML 內容轉換成 PDF 文件?

使用像 IronPDF 這樣的 PDF 程式庫,您可以將 HTML 字串、文件或 URL 轉換為 PDF 文件。這對於直接從網頁內容生成報告或發票非常有用。

將字串替換與 PDF 生成相結合的一些應用場景是什麼?

將字串替換與 PDF 生成相結合非常適合用於建立個性化文件,例如個性化證書或發票,其中模板中的占位符在 PDF 轉換之前被特定使用者資料替換。

如何在 C# 專案中安裝和使用 PDF 生成程式庫?

您可以使用 Visual Studio 中的 NuGet 套件管理器安裝像 IronPDF 這樣的 PDF 程式庫,方法是搜尋程式庫的名稱或使用套件管理器控制台來運行安裝命令。

replace 方法中字母大小寫敏感的重要性是什麼?

C# 的replace方法是大小寫敏感的,這意味著來源字串中的字元或子字串的大小寫必須與指定的值完全匹配,才能被替換。這會影響您如何準備要替換的文字。

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

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

Jacob擁有曼徹斯特大學的土木工程一等榮譽學士學位(BEng),於1998-2001年之間獲得。在1999年於倫敦創辦他的第一家軟體公司並於2005年建立了他的第一批.NET元組件後,他專注於解決Microsoft生態系統中的複雜問題。

他的旗艦IronPDF和Iron Suite .NET程式庫在全球獲得了超過3000萬次NuGet安裝依據,他的基礎程式碼基繼續支援著世界各地開發者使用的工具。擁有25年的商業經驗和41年的程式設計專業知識,他仍專注於推動企業級C#、Java和Python PDF技術的創新,同時指導下一代技術領導者。

Iron 支援團隊

我們線上24小時,每週5天。
聊天
電子郵件
給我打電話