qre*_*est 6 string haskell list
在Haskell中从字符串中去除换行符的惯用方法是什么(或者有没有)?或者我必须通过查找尾随的换行符/空格然后删除它们来制作我自己的?
编辑:我正在寻找Python的rstrip所做的,但不需要可选的"chars"参数:
string.rstrip(s [,chars])
返回删除了尾随字符的字符串副本.如果省略chars或None,则删除空格字符.如果给定而不是None,则字符必须是字符串; 字符串中的字符将从调用此方法的字符串末尾删除.
Tra*_*own 10
这是一个简单的实现(改编自维基百科):
import Data.Char (isSpace)
rstrip = reverse . dropWhile isSpace . reverse
Run Code Online (Sandbox Code Playgroud)
还有一个rstrip已定义的Data.String.Utils.
(顺便说一句,Hayoo!对于这类问题来说是一个很好的资源:搜索rstrip直接带你去Data.String.Utils.)
我前几天用过这个:
Prelude> let trimnl = reverse . dropWhile (=='\n') . reverse
Prelude> trimnl ""
""
Prelude> trimnl "\n"
""
Prelude> trimnl "a\n"
"a"
Prelude> trimnl "a\n\n"
"a"
Prelude> trimnl "a\nb\n"
"a\nb"
Run Code Online (Sandbox Code Playgroud)