【发布时间】:2013-01-28 12:35:52
【问题描述】:
我有 5 个字符串,我们就叫它们
EarthStringFireStringWindStringWaterStringHeartString
它们都可以有不同的长度,它们中的任何一个都可以是空的,或者可以很长(但不能为空)。
这5个字符串是很要好的朋友,每个周末都用这个c#语句将它们串联起来形成一个结果字符串
ResultString = EarthString + FireString + WindString + WaterString + HeartString
根据这些字符串的值,有时(仅有时)ResultString 将包含“Captain Planet”作为子字符串。
我的问题是,如何在 5 个字符串连接之前对其进行操作,以便在组合它们时,“Captain Planet”永远不会在结果字符串中作为子字符串出现?
我现在能想到的唯一方法是按顺序检查每个字符串中的每个字符,但这似乎很乏味。由于 5 个好朋友字符串中的每一个都可以是任意长度,因此单独检查这些字符还需要进行某种连接,然后才能确定是否需要删除任何字符。
编辑:结果字符串是连接在一起的 5 个字符串的过滤版本,所有其他内容保持不变,除了“Captain Planet”字符串被删除。是的,我正在寻找一种允许在连接之前对 5 个字符串进行操作的解决方案。 (这实际上是我遇到的更大编程问题的简化)。谢谢大家。
【问题讨论】:
-
我的意思是,你会怎么做,反正很好,只是想知道其他程序员如何解决这个问题
-
这似乎是一个非常奇怪的问题。这些字符串可以按任何顺序连接吗?您是否必须独立预处理所有这些字符串?你知道编译时的“Captain Planet”子串吗?是否有一个或多个“Captain Planet”字符串需要注意?连接后是否必须保存字符串内容?一系列
string是对您的问题建模最合适的方式吗? -
有什么真正的原因你不能在连接后删除“Captain Planet”吗?
-
为什么不用简单的字符串替换
ResultString.Replace("Captain Planet", ""); -
目前,您遇到了 XY 问题。你试图通过做 Y 来解决 X,所以你问如何完成 Y。相反,更详细地描述 X——你的输入是什么,你的预期输出是什么。我假设您的数据结构中有一些分隔符需要删除。在这种情况下,让它变得更简单会妨碍您获得适当的帮助。
标签: c# regex string parsing filter