使用 String.Format 时,您可以使用 {0}、{1}、{2} 等来引用要放置在字符串中的变量,例如:
string s = String.Format("{0} {1}", "Like", "this.");
有什么方法可以在大括号内使用字符串值而不是整数。因此,输入字符串将是:
"{word1} {word2}"
我这样做是因为我有一个很长的文本文件,其中包含需要填写的区域。有太多的区域无法放置一个有序的变量列表,变量可以重复。
那么我如何使用类似于 String.Format 的方法使用字符串名称而不是使用索引呢?
这在 String.Format
中是不可能的。您可以这样做:
string result = formatString.Replace("{word1}", replacement);
假设您有一个字典,其中占位符作为键,替换符作为值,您可以这样做:
Dictionary<string, string> words = new Dictionary<string, string>();
words["{word1}"] = "Hello";
words["{word2}"] = "World!";
StringBuilder result = new StringBuilder("{word1} {word2}");
foreach (string key in words.Keys)
result.Replace(key, words[key]);
string finalResult = result.ToString();
我在这里使用 StringBuilder
来确保字符串不会在每个Replace
上复制,如果我在这里使用string
,情况就是如此。
String.Format 没有这种功能内置,你怎么能通过自定义格式字符串来实现这一点
或者,您可以参考文章命名格式、字符串解析和边缘情况的乐趣