Logo

Programming-Idioms

  • Ada
  • Erlang

Idiom #219 Replace multiple spaces with single space

Create the string t from the value of string s with each sequence of spaces replaced by a single space.

Explain if only the space characters will be replaced, or the other whitespaces as well: tabs, newlines.

singleSpace(Text) ->
        singleSpace(0, Text).

singleSpace(_, []) -> [];
singleSpace(32, [32 | Rest]) ->
        singleSpace(32, Rest);
singleSpace(32, [Ch | Rest]) ->
        [Ch] ++ singleSpace(Ch,  Rest);
singleSpace(Last, [Ch | Rest]) ->
                [Ch] ++ singleSpace(Ch, Rest).


%%singleSpace("this is  a      text  with        multiple spaces").

pure erlang implementation
(def t (clojure.string/replace s #"\s+" " "))

New implementation...