我有一个字符串,例如“:)text :) text:) :-)单词:-(”我需要在textbox(或其他地方)中追加它,附带条件:
而不是“:)”,“:-(”等等)需要调用输入特定符号的函数
我认为存在有有限状态机的解决方案,但是它是如何实现的呢?等待建议。
update:“:)文本:))文本:-)单词:-(”我们见面时的=>“:)‘wec所有函数微笑(”:),它在文本框上显示图像
更新:,我喜欢带代理和Regex.Replace的idea。我可以在遇到':)‘发送到委托参数’:)和当meet ':(‘其他参数。
更新:找到了解决方案,将每个符号转换为字符,并将每个符号比较为‘:),如果是相等的话,则调用微笑( ':)’)
发布于 2010-04-11 06:37:28
您可以将Regex.Replace与委托一起使用,在其中可以处理匹配的输入,也可以简单地使用string.Replace
方法。
更新的
你可以这样做:
string text = "aaa :) bbb :( ccc";
string replaced = Regex.Replace(text, @":\)|:\(", match => match.Value == ":)" ? "case1" : "case2");
replaced
变量在执行后将具有"aaa case1 bbb case2 ccc“值。
发布于 2010-04-11 06:38:21
似乎你想用这些符号替换字符串的一部分,对吗?无需自己构建,只需使用string.Replace
即可。就像这样:
string text = " :)text :)text:) :-) word :-( ";
text = text.Replace(":)", "☺").Replace(":(", "☹"); // similar for others
textbox.Text += text;
请注意,这不是有史以来产生的最有效的代码,但是如果这是一个类似聊天程序的代码,您可能永远不会知道其中的区别。
发布于 2010-04-11 06:37:49
您只需创建一个以这些特定字符作为键的字典并提取值。
https://stackoverflow.com/questions/2617365
复制