要列出的Haskell字符串

the*_*ux4 6 haskell list

可能重复:
将字符串列表转换为haskell中的int列表

我有一个字符串12345.如何以列表形式显示它[1,2,3,4,5]?如果我有一个字符串##%%怎么办?我无法将其转换为Int.如何在表格中查看[#,#,%,%]

Phi*_*hil 9

import Data.Char (digitToInt)

map digitToInt "12345"
Run Code Online (Sandbox Code Playgroud)

  • 如果我没有数字怎么办? (2认同)

dav*_*420 7

使用 intersperse

myShow :: String -> String
myShow s = concat ["[", intersperse ',' s, "]"]
Run Code Online (Sandbox Code Playgroud)


San*_*dri 5

您应该将函数read x :: Int映射到字符串的每个元素作为字符列表:

map (\x -> read [x]::Int) "1234"
Run Code Online (Sandbox Code Playgroud)

如果你有非数字字符,你应该首先过滤它,如下所示:

import Data.Char
map (\x -> read [x]::Int) (filter (\x -> isDigit x) "1234##56")
Run Code Online (Sandbox Code Playgroud)

这导致:

[1,2,3,4,5,6]
Run Code Online (Sandbox Code Playgroud)