例如我有一个haskell列表[72,73,74,75]
,如何将此列表作为字符串输出?列表中的所有元素都是ascii值。
答案 0 :(得分:6)
您可以合并map
,将函数应用于列表的每个元素,以及chr
函数,将Int
值转换为其Char
等效值:
> map chr [72,73,74,75]
"HIJK"
答案 1 :(得分:6)
您可以使用Int
将Char
代码点转换为chr :: Int -> Char
; String
只是Char
的列表。请注意,这适用于任何Unicode代码点,而不仅仅是ASCII,这是您应该做的事情。
您可以使用Hoogle找到这样的功能;只需键入类似Int -> Char
的内容,它就会为您提供与该类型相匹配的功能。
答案 2 :(得分:0)
您可以使用模块Char中的'chr'将整数值转换为字符:
import Char
intListToString l = [ chr x | x <- l ]
main = do
putStrLn $ "the string: " ++ (intListToString [72,73,74,75])
使用'runghci'运行上面的内容给出了:
the string: HIJK
答案 3 :(得分:0)
您希望此列表为直字符串还是带逗号的列表?除非您想将ASCII字符值转换为其字符对应项(已经涵盖),否则您可以执行以下操作:
concatMap show [72,73,74,75]
会给你一个“72737475”字符串和
init $ tail $ show [72,73,74,75]
会给你一个“72,73,74,75”字符串