Dlang chomp()没有在某些分隔符上工作

时间:2015-02-01 23:15:58

标签: string d

陈述writefln("%s", chomp("Hello world", "orld")) 生成正确的输出Hello w

但是,分隔符“:”和“,”不会被限制。

writefln("%s", chomp("Hello : world", ":"))

输出Hello : world

std.string.chomp的文档没有提到有关保留字符的任何内容,除非我误解了某些内容。这是一个错误还是按预期工作?

感谢您的时间。

1 个答案:

答案 0 :(得分:4)

chomp剥离字符串的结尾分隔符,在您的情况下"Hello world"当然以"orld"结束

但是"Hello : world"并不以":"结尾,事实上,如果您希望它以与其相关的任何内容结束,那么它会以": world"

结束

如果这必须与chomp一起使用,那么它应该是"Hello world:"

writefln("%s", chomp("Hello world:", ":")); // It should be like this

您也可以使用chompPrefix来启动分隔符,而不是结束分隔符。

如果您想从字符串中删除":",那么您可以使用replace中的std.array

writefln("%s", replace("Hello : world", ":" ""));
// Output: "Hello  world"