Ho un String
come "1 2 3 4 5"
. Come posso convertirlo in un elenco di numeri interi come [1,2,3,4,5]
in Haskell? Cosa succede se l'elenco è "12345"
?Come convertire String in lista di interi in Haskell
risposta
È possibile utilizzare
Prelude> map read $ words "1 2 3 4 5" :: [Int]
[1,2,3,4,5]
Qui usiamo words
dividere "1 2 3 4 5"
su spazio bianco in modo da ottenere ["1", "2", "3", "4", "5"]
. La funzione read
ora può convertire le singole stringhe in numeri interi. Ha il tipo Read a => String -> a
in modo che possa effettivamente convertire qualsiasi cosa nella classe di tipo Read
e che include Int
. È a causa della variabile di tipo nel tipo restituito che dobbiamo specificare il tipo sopra.
Per la stringa senza spazi, è necessario convertire ogni Char
in un elenco di elementi singoli. Questo può essere fatto applicando (:"")
ad esso - un String
è solo un elenco di Char
s. Abbiamo poi applichiamo read
di nuovo come prima:
Prelude> map (read . (:"")) "12345" :: [Int]
[1,2,3,4,5]
grazie mille martin .. tu rock .. –
C'è una funzione definita nel modulo Data.Char chiamato digitToInt. Prende un carattere e restituisce un numero, purché il carattere possa essere interpretato come una cifra esadecimale.
Se si desidera utilizzare questa funzione nel primo esempio, dove i numeri sono separati da uno spazio, è necessario evitare gli spazi. È possibile farlo con un semplice filtro
> map digitToInt $ filter (/=' ') "1 2 1 2 1 2 1"
[1,2,1,2,1,2,1]
Il secondo esempio, dove le cifre in cui non separati a tutti, è ancora più facile perché non c'è bisogno di un filtro
> map digitToInt "1212121"
[1,2,1,2,1,2,1]
direi digitToInt è migliore di leggi perché non dipende dal tipo di espressione, il che potrebbe essere difficile (che a sua volta è il modo in cui ho trovato questo post = P). Ad ogni modo, sono nuovo di haskell quindi potrei anche sbagliarmi =).
È possibile utilizzare:
> [read [x] :: Int | x <- string]
- 1. JSON String array in Java String lista
- 2. Come convertire string [] in ArrayList?
- 3. Come convertire Guid [] in String?
- 4. Come convertire String in JsonObject
- 5. Come convertire Writer in String
- 6. convertire EnumerableRowCollection <string> la lista <string>
- 7. Haskell: lista divisa in 3-tuple
- 8. conversione di una lista di interi in range in pitone
- 9. come faccio sorta interi in una lista
- 10. Haskell Conversione Lista per lista di tuple
- 11. Come convertire Lista <string> a ReadOnlyCollection <string> in C#
- 12. Come convertire RDD [(String, String)] in RDD [Array [String]]?
- 13. ordinamento numeri interi veloci in haskell
- 14. Come convertire stringhe in numeri interi in Python?
- 15. convertire java.util.Map [String, Object] in scala.collection.immutable.Map [String, Any]
- 16. Come convertire una stringa di numeri clojure in interi separati?
- 17. Come convertire ArrayList in string array (string []) in C#
- 18. Come convertire String in Hex e Hex in String?
- 19. Come convertire DataInputStream in String in Java?
- 20. Come convertire valori memorizzati nella matrice String ad array di interi in Java
- 21. Come convertire oggetto [] in lista <string> in una riga di C# 3.0?
- 22. Matlab, come convertire una stringa di interi in un vettore?
- 23. Suddividere una lista in haskell
- 24. Lista prestazioni manipolazione in Haskell
- 25. Parametrizzazione dei tipi per interi in Haskell
- 26. Come trasformare un elenco di numeri interi in una matrice di vero e falso in Haskell
- 27. Come convertire QString in std :: string?
- 28. Come convertire std :: string in NSString?
- 29. Come convertire ActiveSupport :: SafeBuffer in String?
- 30. Come convertire Platform :: String in char *?
-1, si può aggiungere il codice che avete provato con? – Reddy