cha*_*r m 5 c c# string-formatting
所以我想像这样转换字符串:
"Bloke %s drank %5.2f litres of booze and ate %d bananas"
Run Code Online (Sandbox Code Playgroud)
与 .Format 或 .AppendFormat 方法等效的 C#
"Bloke {0} drank {1,5:f2} litres of booze and ate {2} bananas"
Run Code Online (Sandbox Code Playgroud)
抱歉,我不确定 C# 版本是否正确,但你明白了。解决方案不必是完美的,但可以涵盖基本情况。
谢谢&BR-马蒂
你也许可以只使用StringBuilder.Replace().
StringBuilder cString = new StringBuilder("Bloke %s drank %5.2f litres of booze and ate %d bananas");
cString.Replace("%s","{0}");
cString.Replace("%5.2f", "1,5:f2"); // I am unsure of this format specifier
cString.Replace("%d", "{2}");
string newString = String.Format(cString.ToString(), var1, var2, var3);
Run Code Online (Sandbox Code Playgroud)
可以想象,您可以添加类似的内容作为 String 的扩展方法,但我认为您最大的问题将是特殊格式的说明符。如果这在这方面很重要,您可能需要设计一个正则表达式来捕获这些并有意义地执行替换。