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

por*_*ton 2 string replace d

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

我想从删除source其存在于所有字符toBeRemoved

用 D 编程语言做到这一点的最佳方法是什么?

示例

string source = "abcd";
string toBeRemoved = "bd";
string result = ...; // "ac"
Run Code Online (Sandbox Code Playgroud)

gre*_*ify 5

如果您事先知道要删除的字符,则可以使用any它,因为它会更快一些,因为它可以在编译时构建专门的开关表:

source.filter!(c => !c.any('b', 'd'))
Run Code Online (Sandbox Code Playgroud)

否则,例如canFind帮助:

source.filter(c => !toBeRemoved.canFind(c))
Run Code Online (Sandbox Code Playgroud)

请注意,这filter是惰性的(并且没有分配)。如果最后确实需要一个字符串,请使用 eg .to!string