簡體   English   中英

C# 格式字符串

[英]C# Format String

C# 可以格式化字符串,例如 $"string {a} {b} {c}" 以將變量 a、b 和 c 替換為字符串。

    var a = "string1";
    var b = "string2";
    var c = "string3";
    var d = $"string {a} {b} {c}";    // become "string string1 string2 string3"

可以將格式字符串存儲到變量中,以便我可以動態創建字符串模板。

    var a = "string1";
    var b = "string2";
    var c = "string3";
    var template = "string {a} {b} {c}";

    var d = $template;  // Can I do this?

謝謝!

您應該使用string.Format

var a = "string1";
var b = "string2";
var c = "string3";

var template = "string {0} {1} {2}";

var d = string.Format(template, a, b, c);

是的,很可能您正在使用一個字符串並將其格式化以填充變量,就像使用任何語言一樣。

在 C# 中可以這樣做

var a = "string1"; // first string
var b = "string2"; // second string
var c = "string3"; // third string
var d = "string {0} {1} {2}"; // string to format (fill with variables)

// formatting the string 
var template = string.Format(d, a, b, c);

// output -> "string string1 string2 string3"

您可以使用String.Format來實現這一點。

var a = "string1";
var b = "string2";
var c = "string3";
var template = "string {0} {1} {2}";

var d = String.Format(template, a,b,c);

我認為一個不錯的候選者是string.Format ,但您也可以使用花哨的FormattableStringFactory

var a = "string1";
var b = "string2";
var c = "string3";
var template = "string {0} {1} {2}"; //Please note, not {a}, but {0}

var str = string.Format(template, a, b, c); // Preferred

// From System.Runtime.CompilerServices
var str2 = FormattableStringFactory.Create(template, new object[] { a, b, c });

如果您想保留“ {a} ”(不是“ {0} ”),那么string.Replace可以提供幫助。

var d = template
       .Replace('{a}', a);
       .Replace('{b}', b);
       .Replace('{c}', c);

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM