> Erlang中文手册 > centre/2 让字符串中间对齐

string:centre/2

让字符串中间对齐

用法:

centre(String, Number) -> Centered

内部实现:

-spec centre(String, Number) -> Centered when
      String :: string(),
      Centered :: string(),
      Number :: non_neg_integer().

centre(String, Len) when is_integer(Len) -> centre(String, Len, $\s).

-spec centre(String, Number, Character) -> Centered when
      String :: string(),
      Centered :: string(),
      Number :: non_neg_integer(),
      Character :: char().

centre(String, 0, Char) when is_list(String), is_integer(Char) ->
    [];                       % Strange cases to centre string
centre(String, Len, Char) when is_integer(Char) ->
    Slen = length(String),
    if
	Slen > Len -> substr(String, (Slen-Len) div 2 + 1, Len);
	Slen 
	    N = (Len-Slen) div 2,
	    r_pad(l_pad(String, Len-(Slen+N), Char), N, Char);
	Slen =:= Len -> String
    end.

返回一个从字符串中间开始,扩充到指定长度 Number 的新字符串,不足则用空格填充,用法跟 string:centre(String, Number, $\s) 是一样

string:centre("123456789", 5)