I would like to print a char underlining a String n times, with n the length of the String in Haskell.
How should I do this?
My String is: "Available Chars (x)" and I want to have a char underlining that sentence, which should have exactly the same length as the "Available Chars (x)". But x is an int, so it could be "1" or "10" or "1000" etc.. so the length is variable. I got the length but i didnt know how to print that char as long as the string is...
Use replicate
:
underline :: String -> String
underline = flip replicate '-' . length
This will give you a string which is n times the character '-' where n is the length of the input string. It is the same as:
underline = map (const '-')
You can then use it like this (if for example yourString = "Available Chars (111)"
):
> putStrLn yourString >> putStrLn (underline yourString)
Available Chars (111)
---------------------
got it!
replicate n 'charHere'
for example, if you want to repeat the char '-'
12 times:
replicate 12 '-'
A possibility is to (re)implement replicate
, for instance as follows,
replicate' :: Int -> a -> [a]
replicate' n x = if (n <= 0) then [] else (x : replicate (n-1) x)
The technical post webpages of this site follow the CC BY-SA 4.0 protocol. If you need to reprint, please indicate the site URL or the original address.Any question please contact:yoyou2525@163.com.