我有一个字符串source
和一个字符串toBeRemoved
。
我想从source
中删除toBeRemoved
中存在的所有字符。
用D编程语言实现此目标的最佳方法是什么?
示例:
string source = "abcd";
string toBeRemoved = "bd";
string result = ...; // "ac"
答案 0 :(得分:4)
如果您事先知道要删除的字符,则可以使用any
,因为它可以更快地使用,因为它可以在编译时构建专用的切换表:
source.filter!(c => !c.any('b', 'd'))
否则,例如canFind
有帮助:
source.filter(c => !toBeRemoved.canFind(c))
请注意,filter
是惰性的(并且没有分配)。如果您确实需要结尾的字符串,请使用例如.to!string
。