替换一个字符串中的多个单词我有多个单词想用值替换,最好的方法是什么?示例:这就是我所做的,但感觉和看起来都不对字符串s1=s.Replace("",client.FullName);字符串s2=s1.Replace("",event.EventDate.ToString());txtMessage.Text=s2;一定会有更好的办法?谢谢如果你计划有一个可以随时更改的动态数量的替换,并且你想让它更干净,你总是可以做这样的事情://定义要替换的名称/值对。varreplacements=newDictionary();替换.Add("",client.FullName);replacements.Add("",event.EventDate.ToString());//替换字符串s="亲爱的,您的预订已确认";foreach(varreplacementinreplacements){s=s.Replace(replacement.Key,replacement.Value);您可以使用String.Format。string.Format("亲爱的{0},您的{1}预订已确认",client.FullName,event.EventDate.ToString());要以George的答案为基础,您可以将消息解析为卡片,然后从令牌构建消息。如果模板字符串更大并且具有更多标记,这会更有效,因为您不会为每个标记替换重建整个消息。此外,令牌的生成可以移出到单例中,因此只需完成一次。//定义要替换的名称/值对。varreplacements=newDictionary();更换。添加("",client.FullName);更换。Add("",event.EventDate.ToString());strings="亲爱的,您的预订已确认";//将消息解析为令牌数组Regexregex=newRegex("(]+>)");字符串[]标记=正则表达式。拆分;//从标记中重建新消息varsb=newStringBuilder();foreach(令牌中的字符串令牌)sb.Append(replacements.ContainsKey(token)?replacements[token]:token);s=sb.ToString();您可以将替换操作链接在一起:s=s.Replace(...).Replace(...);请注意,您不需要创建另一个字符串来执行此操作。使用String.Format是合适的方法,但前提是您可以更改原始字符串以适应大括号格式。当您进行多次替换时,使用StringBuilder而不是string效率更高。否则,replace函数每次运行时都会复制字符串,浪费时间和内存。UsingString.Format:conststringmessage="亲爱的{0},请致电{1}从{3}获取您的{2}";字符串名称=“鲍勃”;stringcallName="爱丽丝";stringthingy="书";stringthingyKeeper="图书馆";stringcustomMessage=string.Format(message,name,callName,thingy,thingyKeeper);试试这个代码:stringMyString="ThisistheFirstPosttoStackoverflow";MyString=MyString.Replace("the","My").Replace("to","tothe");结果:MyString=“这是我对Stackoverflow的第一篇文章”;改进@Evan说的...上面是C#学习教程:替换字符串中的多个单词共享所有内容。如果对您有用,需要进一步了解C#学习教程,希望您多加关注—strings="亲爱的,您的预订已确认";字符串s1=client.FullName;字符串s2=event.EventDate.ToString();txtMessage.Text=s.Replace("",s1).Replace("事件日期",s2);代表立场,如涉及侵权,请点击右侧联系管理员删除。如需转载请注明出处:
