Haskell程序:将字符串值转换为字节值


在Haskell中,我们将使用`ord`、`B.pack`和`fromNum`函数将字符串值转换为字节值。在第一个示例中,我们将使用`(stringToBytes = map ord)`函数;在第二个示例中,我们将调用`(stringToBytes = B.pack)`函数;在第三个示例中,我们将使用`(byteList = map fromEnum str)`函数。

算法

  • 步骤1 − 导入`Data.Char`模块。

  • 步骤2 − 使用`ord`函数定义`stringToBytes`函数,如下所示:

  • 步骤3 − 程序执行将从`main`函数开始。`main()`函数控制整个程序的执行。它被编写为`main = do`。

  • 步骤4 − 定义名为“str”的变量,该变量将保存要转换为字节的字符串。

  • 步骤5 − 函数调用后,将相应于字符串值的最终字节值打印到控制台。

示例1

在这个示例中,使用`ord`函数将字符串值转换为字节值。

import Data.Char (ord)

stringToBytes :: String -> [Int]
stringToBytes = map ord

main :: IO ()
main = do
  let str = "hello"
      bytes = stringToBytes str
  print bytes

输出

[1 of 1] Compiling Main             ( main.hs, main.o )
Linking main ...
[104,101,108,108,111]

示例2

在这个示例中,使用`B.pack`函数将字符串值转换为字节值。

import qualified Data.ByteString.Char8 as B

stringToBytes :: String -> B.ByteString
stringToBytes = B.pack

main :: IO ()
main = do
  let str = "hello"
      bytes = stringToBytes str
  B.putStrLn bytes

输出

[1 of 1] Compiling Main             ( main.hs, main.o )
Linking main ...
hello

示例3

在这个示例中,使用`B.pack`函数将字符串值转换为字节值。

import qualified Data.ByteString.Char8 as B

main :: IO ()
main = do
  let str = "hello world"
      byteStr = B.pack str
  putStrLn $ "String: " ++ str
  putStrLn $ "ByteString: " ++ show byteStr

输出

[1 of 1] Compiling Main             ( main.hs, main.o )
Linking main ...
String: hello world
ByteString: "hello world"

示例4

在这个示例中,使用`B.pack`函数将字符串值转换为字节值。

import qualified Data.ByteString.Char8 as B

main :: IO ()
main = do
  let str = "hello world"
      byteStr = B.pack str
      byteList = B.unpack byteStr
  putStrLn $ "String: " ++ str
  putStrLn $ "ByteList: " ++ show byteList

输出

[1 of 1] Compiling Main             ( main.hs, main.o )
Linking main ...
String: hello world
ByteList: "hello world"

示例5

在这个示例中,使用`fromEnum`函数将字符串值转换为字节值。

import Data.List (map)

main :: IO ()
main = do
  let str = "hello world"
      byteList = map fromEnum str
  putStrLn $ "String: " ++ str
  putStrLn $ "ByteList: " ++ show byteList

输出

[1 of 1] Compiling Main             ( main.hs, main.o )
Linking main ...
String: hello world
ByteList: [104,101,108,108,111,32,119,111,114,108,100]

结论

在Haskell中,将字符串值转换为字节值是将表示为字符串的字符序列转换为字节序列的过程。在Haskell中,字符串表示为字符序列,而字节表示为0-255范围内的数值序列,表示单个字节的值。

更新于:2023年3月28日

浏览量:265

开启你的职业生涯

完成课程获得认证

开始学习
广告