例如我有一个 haskell 列表[72,73,74,75]
,我如何将这个列表输出为字符串?,列表中的所有元素都是 ascii 值。
问问题
1886 次
4 回答
7
您可以组合map
,将函数应用于列表的每个元素,以及将值chr
转换为等效Int
值的函数:Char
> map chr [72,73,74,75]
"HIJK"
于 2012-12-02T02:26:52.277 回答
6
您可以将Int
代码点转换为Char
using chr :: Int -> Char
; aString
只是Char
s 的列表。请注意,这适用于任何 Unicode 代码点,而不仅仅是 ASCII,这是您无论如何都应该做的事情。
您可以使用Hoogle找到这样的功能;只需键入类似Int -> Char
的内容,它就会为您提供与该类型匹配的函数。
于 2012-12-02T02:27:11.563 回答
1
您可以使用模块 Char 中的 'chr' 将整数值转换为字符:
import Char
intListToString l = [ chr x | x <- l ]
main = do
putStrLn $ "the string: " ++ (intListToString [72,73,74,75])
使用 'runghci' 运行上述命令会给出:
the string: HIJK
于 2012-12-02T02:26:31.427 回答
0
您希望此列表为直字符串还是带逗号的列表?除非您想将 ASCII 字符值转换为对应的字符(已经介绍过),否则您可以执行以下操作:
concatMap show [72,73,74,75]
会给你一个“72737475”字符串和
init $ tail $ show [72,73,74,75]
会给你一个 "72,73,74,75" 字符串
于 2012-12-02T13:15:27.467 回答