2016-09-08 180 views
0

我有一個非空格字符之間的2,3或多個空格的字符串我怎樣才能用一個空格從整個字符串

string = "a b c d" 

我能做些什麼,使之像取代連續的空格:

output_string == "a b c d" 
+0

你可能想要改變你的問題的標題。你不會刪除_trailing_空格。您正在刪除字符串中的空格。 –

回答

6

最簡單的方式將使用正則表達式:

iex(1)> string = "a b c d" 
"a b c d" 
iex(2)> String.replace(string, ~r/ +/, " ") # replace only consecutive space characters 
"a b c d" 
iex(3)> String.replace(string, ~r/\s+/, " ") # replace any consecutive whitespace 
"a b c d" 
+0

我開始寫答案,但你是第一個:) – asiniy

0

Regex.replace(〜R/\ S + /,「一BCD 「」「)

+1

我不知道爲什麼這是downvoted;它確實有效。 –

1

另一種可能性是String#splitEnum#join

iex(1)> "a b c d" |> String.split(~r{\s+}) |> Enum.join(" ") 
#⇒ "a b c d" 
0

對於它的價值,你甚至不需要正則表達式:

iex(3)> "a b c d" |> String.split |> Enum.join(" ") 
#=>"a b c d" 

而且剛剛從我的一點冒煙測試,它看起來像這將適用於任何空白分隔符(我。即它可以在空格和製表符上工作,據我所知)。

相關問題