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函数从字符串列表创建数组。

更新于: 2023年3月28日

984 次浏览

开启你的 职业生涯

通过完成课程获得认证

立即开始
广告

© . All rights reserved.