int id = 112;
String[] newData = { "1", "2", "21", "reidb", "reidb", "reidb", "reidb", "aa",
"Some description", "11", "2012-02-28", "2012-01-29", "true", "1", "1",
"true", "note note note", "true", "1", "2011-12-03", "45"};
String data = "{ cmd: \"save magellan deal\", data: { id: {0} , AId: {1}, " +
"CId: {2}, CCId:{3}, LA: \"{4}\", BA: \"{5}\" , " +
"LSA: \"{6}\" , BSA: \"{7}\" , \"path: \"{8}\"," +
"dscp: \"{9}\", SI: \"{10}\", CD: \"{11}\", " +
"period: \"{12}\", IsStatic: {13}, LSD: {14}, LC: {15}, RB: {16},} " +
"Notes: \"{17}\", IsEE: {18}, RBy: {19}, DPDD: \"{20}\", LId: {21} } }";
String cmd = String.Format(data, id.toString(), newData);
有人有什么想法吗?
=== 编辑 ===
修复花括号后,出现了一个新的错误:"索引(从零开始)必须大于或等于零,并且小于参数列表的大小。" 给出的 newData 为21和加上 id.toString() 后应该是精确的22?
string.Format
- 这只是增加了复杂性而没有好处。你无法快速确定哪个参数对应哪个占位符。字符串拼接具有相同的语义,没有需要记忆的转义规则,甚至还稍微快一点 - 然后您可以看到实际插入的变量的上下文,我假设它们在真实程序中有一些意义。 - Eamon Nerbonnestring.Join
或StringBuilder
稍快。因此,没有技术上避免它的理由;而且你的代码将更易读。 - Eamon Nerbonne