Haskell 程序将字符串转换为整数


本教程将帮助我们将字符串转换为整数。在 Haskell 中,将字符串转换为整数的过程通常涉及使用来自 Text.Read 模块的 **read** 函数或 **readMaybe** 函数。另一种方法是使用来自 Data.Char 模块的 **digitToInt** 函数将字符串中的每个字符转换为其相应的数值。

所有这些函数都是标准库的一部分,我们可以使用它们轻松地将字符串转换为 Haskell 中的整数。

算法

  • **步骤 1** - 使用 read 函数定义 in-build() 函数。

  • **步骤 2** - 程序执行将从 main 函数开始。main() 函数控制整个程序。

  • **步骤 3** - 初始化一个名为“s”的变量。它将包含要转换为整数的字符串值。

  • **步骤 4** - 调用 in-build() 函数,并将字符串作为参数传递给它。

  • **步骤 5** - 显示最终转换后的整数结果值。

使用 Read 函数

在这种方法中,stringToInt 在 read 函数下定义。然后调用此 stringToInt() 并将字符串值作为参数传递给它。show 函数用于将整数转换为字符串,以便可以将其打印到控制台。

示例

在这个例子中,我们将看到如何使用 read 函数将字符串转换为整数。read 函数将字符串转换为数字。

stringToInt :: String -> Int
stringToInt s = read s 
main :: IO ()
main = do 
   let s = "123"
   let result = stringToInt s
   putStrLn (show result)

输出

123

 使用 readMaybe 函数

在这个例子中,我们将看到如何使用来自 Text.Read 模块的 readMaybe 函数将字符串转换为整数。如果字符串可以解析为所需的类型,它将返回解析后的值,否则返回 Nothing。show 函数用于将整数转换为字符串,以便可以将其打印到控制台。

示例

import Text.Read (readMaybe)
stringToInt :: String -> Maybe Int
stringToInt s = readMaybe s
main :: IO ()
main = do 
   let s = "123"
   let result = stringToInt s
   putStrLn (show result)

输出

Just 123

使用 digitToInt 函数

在这种方法中,函数 stringToInt 将字符串作为参数,并使用模式匹配来检查它是否与预定义值(“one”、“two”、“three”)之一匹配。如果它与这些值之一匹配,则它返回用 Just 构造函数包装的相应整数。结果是原始字符串的整数表示形式。如果输入字符串与任何预定义值都不匹配,则返回 Nothing。

示例

import Data.Maybe (fromMaybe)
stringToInt :: String -> Maybe Int
stringToInt s = case s of
  "one"   -> Just 1
  "two"   -> Just 2
  "three" -> Just 3
  _       -> Nothing
main = do
  let input = "two"
  let output = fromMaybe (error "Invalid input") (stringToInt input)
  print output

输出

2

结论

在 Haskell 中,将字符串转换为整数的过程通常涉及使用来自 Text.Read 模块的 read 函数或 readMaybe 函数。

另一种方法是使用来自 Data.Char 模块的 digitToInt 函数将字符串中的每个字符转换为其相应的数值,然后将它们与 10 的幂列表组合并加起来以获得原始字符串的整数表示形式。

更新于: 2023 年 1 月 20 日

6K+ 次查看

开启你的 职业生涯

通过完成课程获得认证

立即开始
广告