Haskell字符串转列表

7

2
这些不是重复的。一个是将字符串转换为列表,另一个是将字符串列表转换为列表。 - Scott
在Haskell中,“12345”实际上是['1','2','3','4','5']。这是否符合您的要求,还是应该是["1","2","3","4","5"]? - Magnus Kronqvist
5个回答

10
import Data.Char (digitToInt)

map digitToInt "12345"

7
使用 intersperse 函数。
myShow :: String -> String
myShow s = concat ["[", intersperse ',' s, "]"]

6
你应该将函数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]

这个可以运行,但如果我有一个像“##%%”这样的字符串呢? - thetux4
这意味着该字符串由数字组成。如果您想过滤掉非数字字符,应该使用过滤器。我会编辑答案。 - Santiago Alessandri
我也改变了我的问题。实际上,我不想拆分非数字字符。我想以列表形式查看它们。 - thetux4

3

我已经检查过了,但是当我尝试转换类似“&%”这样的字符串时,它会出现解析错误。 - thetux4

2

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接