【发布时间】:2020-03-15 12:47:47
【问题描述】:
要求执行以下操作的最佳实践,在 C# 中使用此字符串:
string sentence = "我昨晚在看电视,而她在看书,而你在玩电子游戏";
我正在尝试将其自动替换为以下内容:
“你昨晚在看电视,而她正在看书,我在玩电子游戏”
这里的问题是我不能使用
sentence.Replace("I was", "you were").Replace("you were", "I was")
因为最后一句话看起来很糟糕: “我在看电视,而她在看书,我在玩电子游戏”。
可能看起来很简单,但并不像看起来那么简单,请问我可以得到一些建议吗?
【问题讨论】:
-
替换的重载之一允许您定义它应该覆盖的第一个和最后一个索引。 |您还可以扩展替换字符串以分别包含“观看”和“播放”。将搜索字符串扩展为填充内容是避免假阳性的常用方法。 |但总的来说,这属于语言科学和人工智能领域,而不是普通的编程领域。
-
当替换字符串中的多个项目并希望确保您的替换是唯一的。所以下面会起作用: sentence.Replace("我在看"、"你在看").Replace("你在玩"、"我在玩")
-
这是一个非常有趣的问题。使用代码,您可以引入第三个变量,但这是一个字符串。
-
您可以获取每个替换位置的索引,然后对其进行子串化。