Dlang chomp()不适用于某些定界符
Dlang chomp() not working on certain delimiters
声明writefln("%s", chomp("Hello world", "orld"))
产生正确的输出 Hello w
.
但是,分隔符“:”和“,”不会被压缩。
writefln("%s", chomp("Hello : world", ":"))
输出Hello : world
std.string.chomp 的文档没有提及任何有关保留字符的内容,除非我误解了什么。这是错误还是按预期工作?
感谢您的宝贵时间。
chomp
去掉字符串的结尾分隔符,在你的情况下 "Hello world"
当然以 "orld"
结尾
但是 "Hello : world"
不会以 ":"
结尾,事实上,如果您希望它以任何与之远程相关的内容结尾,那么它会以 ": world"
结尾
如果这必须与 chomp
一起使用,那么它应该是 "Hello world:"
writefln("%s", chomp("Hello world:", ":")); // It should be like this
您也可以使用 chompPrefix
作为开始分隔符而不是结束符。
但是,如果您想从字符串中删除 ":"
,则可以使用 std.array
中的 replace
writefln("%s", replace("Hello : world", ":" ""));
// Output: "Hello world"
声明writefln("%s", chomp("Hello world", "orld"))
产生正确的输出 Hello w
.
但是,分隔符“:”和“,”不会被压缩。
writefln("%s", chomp("Hello : world", ":"))
输出Hello : world
std.string.chomp 的文档没有提及任何有关保留字符的内容,除非我误解了什么。这是错误还是按预期工作?
感谢您的宝贵时间。
chomp
去掉字符串的结尾分隔符,在你的情况下 "Hello world"
当然以 "orld"
但是 "Hello : world"
不会以 ":"
结尾,事实上,如果您希望它以任何与之远程相关的内容结尾,那么它会以 ": world"
如果这必须与 chomp
一起使用,那么它应该是 "Hello world:"
writefln("%s", chomp("Hello world:", ":")); // It should be like this
您也可以使用 chompPrefix
作为开始分隔符而不是结束符。
但是,如果您想从字符串中删除 ":"
,则可以使用 std.array
replace
writefln("%s", replace("Hello : world", ":" ""));
// Output: "Hello world"