簡體   English   中英

如何在 Haskell 中打印 n 次相同的字符

[英]How to print the same char n times in Haskell

我想打印一個字符下划線 n 次,n 是 Haskell 中字符串的長度。

我該怎么做?

我的字符串是:“Available Chars (x)”,我想在那個句子下划一個字符,它的長度應該與“Available Chars (x)”完全相同。 但 x 是一個整數,所以它可以是“1”或“10”或“1000”等。所以長度是可變的。 我得到了長度,但我不知道如何打印該字符,只要字符串是...

使用replicate

underline :: String -> String
underline = flip replicate '-' . length

這將為您提供一個字符串,它是字符 '-' 的 n 倍,其中 n 是輸入字符串的長度。 它與以下內容相同:

underline = map (const '-')

然后您可以像這樣使用它(例如,如果yourString = "Available Chars (111)" ):

> putStrLn yourString >> putStrLn (underline yourString)
Available Chars (111)
---------------------

知道了!

replicate n 'charHere'

例如,如果要重復字符'-' 12 次:

replicate 12 '-'

一種可能性是(重新)實現replicate ,例如如下,

replicate' :: Int -> a -> [a]                
replicate' n x = if (n <= 0) then [] else (x : replicate (n-1) x) 

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM