Haskell程式將字串轉換為陣列
在Haskell中,我們將使用listArray和intersperse函式將字串轉換為陣列。在第一個示例中,我們將使用(stringToArray s = listArray (0, length s - 1) s)函式,在第二個示例中,我們將使用(stringToArray s = s)函式。在第三個示例中,我們將使用(stringToArray s = intersperse ' ' s)。
演算法
步驟1 - 定義stringToArray函式
步驟2 - 程式執行將從main函式開始。main()函式控制整個程式。它被寫成main = do。
步驟3 - 定義變數'myString',它將儲存字串值。
步驟4 - 一旦函式被呼叫,相應的字串值的陣列結果將列印到控制檯。
示例1
在本例中,使用listArray函式將字串轉換為陣列。
import Data.Array stringToArray :: String -> Array Int Char stringToArray s = listArray (0, length s - 1) s main :: IO () main = do let myString = "hello" let myArray = stringToArray myString print myArray
輸出
[1 of 1] Compiling Main ( main.hs, main.o ) Linking main ... array (0,4) [(0,'h'),(1,'e'),(2,'l'),(3,'l'),(4,'o')]
示例2
在本例中,使用列表推導式將字串轉換為陣列。
import Data.Array stringToArray :: String -> Array Int Char stringToArray s = array (0, length s - 1) [(i, s !! i) | i <- [0..length s - 1]] main :: IO () main = do let myString = "hello" let myArray = stringToArray myString print myArray
輸出
[1 of 1] Compiling Main ( main.hs, main.o ) Linking main ... array (0,4) [(0,'h'),(1,'e'),(2,'l'),(3,'l'),(4,'o')]
示例3
在本例中,使用使用者定義函式將字串轉換為陣列。
stringToArray :: String -> [Char] stringToArray s = s main :: IO () main = do let myString = "hello" let myArray = stringToArray myString print myArray
輸出
[1 of 1] Compiling Main ( main.hs, main.o ) Linking main ... "hello"
示例4
在本例中,使用intersperse函式將字串轉換為陣列。
import Data.List stringToArray :: String -> [Char] stringToArray s = intersperse ' ' s main :: IO () main = do let myString = "hello" let myArray = stringToArray myString print myArray
輸出
[1 of 1] Compiling Main ( main.hs, main.o ) Linking main ... "h e l l o"
結論
在Haskell中,字串只是一個字元列表。但是,如果我們想將字串表示為字元陣列,我們可以使用Data.Array模組,該模組提供了用於處理陣列的函式。要將字串轉換為字元陣列,我們可以簡單地從字串建立字元列表,然後使用listArray和intersperse函式從字串列表建立陣列。
廣告