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+ 次檢視

開啟你的 職業生涯

透過完成課程獲得認證

立即開始
廣告
© . All rights reserved.