Answers:
string mystr = string.Format("This is {0}overflow", strVar);
您还可以使用命名参数代替索引。
自C#6.0(Visual Studio 2015+)起已添加。
例:
var planetName = "Bob";
var myName = "Ford";
var formattedStr = $"Hello planet {planetName}, my name is {myName}!";
// formattedStr should be "Hello planet Bob, my name is Ford!"
这是用于以下方面的语法糖:
var formattedStr = String.Format("Hello planet {0}, my name is {1}!", planetName, myName);
其他资源:
$("This feature is {GetDescription(FEATURE_AMAZING))}");
您可以string.Format
用来将值放入字符串中:
private static readonly string formatString = "This is {0}overflow";
...
var strVar = "stack";
var myStr = string.Format(formatString, "stack");
一种替代方法是使用C#串联运算符:
var strVar = "stack";
var myStr = "This is " + strVar + "overflow";
如果您要进行许多串联操作,请使用StringBuilder
效率更高的类:
var strVar = "stack";
var stringBuilder = new StringBuilder("This is ");
for (;;)
{
stringBuilder.Append(strVar); // spot the deliberate mistake ;-)
}
stringBuilder.Append("overflow");
var myStr = stringBuilder.ToString();
C#6.0
string mystr = $"This is {strVar}overflow";
没有为此的运算符。您需要使用string.Format
。
string strVar = "stack";
string mystr = string.Format("This is {0}soverflow", strVar);
不幸的string.Format
是,它是静态方法,因此您不能简单地编写"This is {0}soverflow".Format(strVar)
。有些人定义了一种扩展方法,允许使用这种语法。
您应该使用String.Format()
。语法略有不同,而是使用数字占位符。
例:
String.Format("item {0}, item {1}", "one", "two")
有关更多详细信息,请访问http://msdn.microsoft.com/zh-cn/library/system.string.format.aspx。
您有2个选择。您可以使用String.Format或使用串联运算符。
String newString = String.Format("I inserted this string {0} into this one", oldstring);
要么
String newString = "I inserted this string " + oldstring + " into this one";
String.Format()
使用StringBuilder。连接大量字符串时,StringBuilder通常效率更高,但是连接运算符非常适合一次性使用。String.Format()
当需要将格式应用于输出时(例如在数值上添加填充或前导零),此功能很有用。因此,String.Format()
在循环中使用可能会实例化许多StringBuilders。在这种情况下,最好使用在循环外部和循环AppendFormat()
内部声明的单个StringBuilder 。
还有另一种用string实现占位符的方法。替换在某些情况下会有所帮助:
mystr = mystr.Replace("%soverflow", strVar);
您可以使用以下方式
字符串插值
$特殊字符将字符串文字标识为插值字符串。例如
string name = "Mark";
string surname = "D'souza";
WriteLine($"Name :{name} Surname :{surname}" );//Name :Mark Surname :D'souza
插值字符串是可能包含插值表达式的字符串文字。将插值字符串解析为结果字符串时,带有插值表达式的项目将由表达式结果的字符串表示形式替换。
字符串格式
如果需要将对象,变量或表达式的值插入另一个字符串,请使用String.Format。
WriteLine(String.Format("Name: {0}, Surname : {1}", name, surname));
用:
strVar = "stack"
mystr = String.Format("This is {0}", strVar);