7
votes

Haskell String to List

Dupliqué possible:
Convertir la liste des chaînes à la liste Int dans Haskell

J'ai une chaîne 12345 . Comment puis-je le montrer sous forme de liste comme [1,2,3,4,5] ? Et aussi si j'ai une chaîne comme ## %% ? Je ne peux pas le convertir en int . Comment le voir dans la forme [#, #,%,%] ?


2 commentaires

Ce ne sont pas des duplicats. L'une est convertie d'une chaîne en une liste, l'autre convertit une liste de chaînes à une liste.


À Haskell "12345" est en fait ['1', '2', '3', '4', '5']. Est-ce ce que vous voulez ou est-ce ["1", "2", "3", "4", "5"]?


5 Réponses :


2
votes

Essayez d'utiliser SplitTery avec longueur 1


0 commentaires

10
votes
import Data.Char (digitToInt)

map digitToInt "12345"

0 commentaires

3
votes

Avez-vous regardé à cette réponse? Convertir la liste de chaînes à la liste Int

Une chaîne est juste une liste de caractères de haskell après tout. :)


1 commentaires

Je l'ai vérifié, mais quand j'essaie de convertir une chaîne comme "&%", cela donne une erreur d'analyse.



6
votes

Vous devez cartographier la fonction Lire X :: Int à chacun des éléments de la chaîne sous forme de liste de caractères: xxx

Si vous avez des caractères non chiffres, vous devez la filtrer en premier Comme ceci: xxx

qui entraîne: xxx


3 commentaires

Cela fonctionne, mais si j'ai une corde comme "## %%"?


Cela compte que la chaîne est composée de chiffres. Si vous souhaitez filtrer les caractères qui ne sont pas des chiffres, vous devez utiliser un filtre. Je vais éditer la réponse


J'ai aussi changé ma question. En fait, je ne veux pas scinder des non -igitaits. Je veux les voir dans le formulaire de liste.



7
votes

0 commentaires