Erlang Central

Aligning Strings

From ErlangCentral Wiki

Problem

You want to align a string, left, right, or center. You might use this when generating reports, for example.

Solution

The easiest solution is to use the string module, which solves the left and right padding issues.


1> io:fwrite("|~s|~s|~n", [string:left("Title",20),string:right("Price",10)]).
|Title               |     Price|
ok
2> io:fwrite("|~s|~n",[string:centre("Fabulous",25)]).
|        Fabulous         |
ok

left and right both default to using '$ ' (the space character) as the padding character; you may override this by providing the character in the third argument. The left and right functions also truncate the string if it's longer than the specified field width, but centre generates an error in that case.