日期:2014-05-18  浏览次数:20791 次

问个替换的问题
想做个通知模板, 通知内容想用模板实现
模板里面有2部分活动的,
1种是根据条件进行替换
还一种是用户填写的内容

我打算用 ${0},${1},${2} ....${n} 来表示 根据条件替换的内容

用户填写的内容用[#] 表示 然后输出input 控件让用户填写
这样得到一个 request 的数组
如何把这个数组的内容依次替换掉[#] 标记呢?


------解决方案--------------------
探讨

数组arr[3] {"一","二","三"}
字符串 "a[#]的方式的分[#],dfs[#]"

替换结果 "a一的方式的分二,dfs三"

------解决方案--------------------
系统自带的格式话函数,不适合用吗?
C# code

string.Format("{0},你好!欢迎光临{1}", "张三","北京");

------解决方案--------------------
如果你有Reflector.exe反编译工具的话,你可以看看.net的string类的Format方法的实现,你可以借鉴他的解决方法,就是根据标识{},找到位置,然后添加到StringBuilder,最后替换后,在ToString

其实你就做个遍历替换就ok了
------解决方案--------------------
不明白,
C# code

string[] =new string[]{"一","二","三"};
string y = string.Format("a{0}的方式的分{1},dfs{2}",);

------解决方案--------------------
还是老老实实遍历,逐个替换吧。
可以参照五楼的建议,用反编译工具,查查string.format的源码,
改成适用的方法。
------解决方案--------------------
探讨

1.不定长
2.怕操作者弄错序号

引用:
不明白,

C# code


string[] =new string[]{"一","二","三"};
string y = string.Format("a{0}的方式的分{1},dfs{2}",);


这样不可以吗?难道说有“龟腚”,只能用[#]不能用{0}来占坑吗?