从字符串(D语言)中删除给定的字符

时间:2019-01-31 19:32:56

标签: string replace d

我有一个字符串source和一个字符串toBeRemoved

我想从source中删除toBeRemoved中存在的所有字符。

用D编程语言实现此目标的最佳方法是什么?

示例

string source = "abcd";
string toBeRemoved = "bd";
string result = ...; // "ac"

1 个答案:

答案 0 :(得分:4)

如果您事先知道要删除的字符,则可以使用any,因为它可以更快地使用,因为它可以在编译时构建专用的切换表:

source.filter!(c => !c.any('b', 'd'))

否则,例如canFind有帮助:

source.filter(c => !toBeRemoved.canFind(c))

请注意,filter是惰性的(并且没有分配)。如果您确实需要结尾的字符串,请使用例如.to!string