陈述writefln("%s", chomp("Hello world", "orld"))
生成正确的输出Hello w
。
但是,分隔符“:”和“,”不会被限制。
writefln("%s", chomp("Hello : world", ":"))
输出Hello : world
std.string.chomp的文档没有提到有关保留字符的任何内容,除非我误解了某些内容。这是一个错误还是按预期工作?
感谢您的时间。
答案 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"