Haskell中的左右字符串对齐
我习惯于使用 Python 并且对 Haskell 相当陌生。
我想知道 Haskell 中的字符串如何左/右对齐,以及 Haskell 中是否存在与以下 Python 函数等效的函数:
str = "Hello stackoverflow."
# Printing a left aligned string
print (str.ljust(40))
# Printing a right aligned string
print (str.rjust(40))
回答
通常用于文本处理,Text使用而不是Strings,因为Text适用于未装箱的unicode 字符数组。可以用justifyLeft :: Int -> Char -> Text -> Text和来证明justifyRight :: Int -> Char -> Text -> Text。例如:
{-# LANGUAGE OverloadedStrings #-}
import Data.Text(Text, justifyLeft, justifyRight)
import Data.Text.IO as TI
myText :: Text
myText = "Hello stackoverflow."
main :: IO ()
main = do
TI.putStrLn (justifyLeft 40 ' ' myText)
TI.putStrLn (justifyRight 40 ' ' myText)
在' '这里是作为“填充字符”的字符。例如,如果我们使用justifyLeft 40 '#' myTextandjustifyRight 40 '#' myText代替,我们得到:
Hello stackoverflow.####################
####################Hello stackoverflow.