使用字符串时,Getting Input字符串的格式不正确.总体安排
本文关键字:字符串 不正确 格式 Input Getting | 更新日期: 2023-09-27 18:27:48
我正在尝试使用字符串格式来填充字符串模板中的一些值,下面是字符串值:
{
'"version'":'"9.40.20153.0'",'"sheetCount'":1,
'"sheets'":{
'"{0}'":
{
'"name'":'"{1}'",
'"rowCount'":{2},
'"columnCount'":{3},
'"colHeaderData'":{
'"dataTable'":{
{4}
}
},
'"data'":{
'"dataTable'":{
{5}
},
'"index'":0
}
}
}
下面是调用字符串的代码。格式方法:
string newString=SB.AppendLine(string.Format(genericTemplate, sheetName,columnCount, rowCount,3,5,6)).ToString();
现在它变得非常令人沮丧:(.请帮助!!
您必须转义所有不用于格式化的花括号。这是通过简单地复制每个花括号来完成的。
例如,第一行和最后一行应该是这样的:
{{
}}
而这条线必须保持原样:
'"{0}'":
var genericTemplate = @"
{{
""version"":""9.40.20153.0"",""sheetCount"":1,
""sheets"":{{
""{0}"":
{{
""name"":""{1}"",
""rowCount"":{2},
""columnCount"":{3},
""colHeaderData"":{{
""dataTable"":{{
{4}
}}
}},
""data"":{{
""dataTable"":{{
{5}
}},
""index"":0
}}
}}
}}";
var newString = string.Format(genericTemplate, "arg1", "arg2", "arg3", "arg4", "arg5", "arg6");
发生这种情况是因为您试图在字符串中使用大括号。正如另一个答案所说,你需要逃离这些。更好的选择可能是为此创建一个对象并将其序列化为JSON。