我有一个字符串12345
。如何以[1,2,3,4,5]
等列表形式显示?如果我有一个像##%%
这样的字符串怎么办?我无法将其转换为Int
。如何以[#,#,%,%]
?
答案 0 :(得分:9)
import Data.Char (digitToInt)
map digitToInt "12345"
答案 1 :(得分:7)
myShow :: String -> String
myShow s = concat ["[", intersperse ',' s, "]"]
答案 2 :(得分:5)
您应该将函数read x :: Int映射到字符串的每个元素作为字符列表:
map (\x -> read [x]::Int) "1234"
如果你有非数字字符,你应该首先过滤它:
import Data.Char
map (\x -> read [x]::Int) (filter (\x -> isDigit x) "1234##56")
结果是:
[1,2,3,4,5,6]
答案 3 :(得分:3)
你看过这个答案吗? Convert string list to int list
毕竟,String只是Haskell中的一个字符列表。 :)
答案 4 :(得分:2)
尝试使用长度为1的splitEvery