2014-09-25 71 views
1

Elixir 1.0,Windows 7 x64上的Erlang 17.3。爲什麼我不能從字符串中去掉這個字符?

我鍵入此代碼:

l = "[9,0]" 
s = String.strip(l,"[") 

而且我得到這個:

**(FunctionClauseError)在String.lstrip/2 (酏劑)的lib /字符串沒有功能的語句匹配。例如:527:String.lstrip( 「[9,0]」, 「[」) (酏劑)的lib/string.ex:564:String.strip/2

我缺少什麼?

我也試過s = String.strip(l,",")和同樣的錯誤。還試過s = String.strip(l,'[')同樣的錯誤。

我錯過了什麼?

回答

3

你想要的字符傳遞給String.strip/2

s = String.strip(l, ?[) 

由於Shashidhar在評論中指出,String.strip/2已經從藥劑文檔下降,可能會在將來完全去除。建議更換爲String.trim/2這需要一個字符串作爲其第二個參數:

s = String.trim(l, "[") 
+2

String.strip/2 API已被棄用。 信息:https://stackoverflow.com/a/38073411/3142192 – 2017-06-02 05:46:53

4

您應使用單個字符作爲第二PARAM,而不是一個字符串。

iex(42)> l = "[9,0]"    
"[9,0]" 
iex(43)> s = String.strip(l, ?[) 
"9,0]" 
iex(44)> s = String.strip(l, ?]) 
"[9,0" 

見多字符串文檔在這個http://elixir-lang.org/docs/stable/elixir/String.html#strip/2

+0

你知道我看到的文件,但沒有足夠的關注。我試着「?[」(儘管我沒有在問題中提到它)。 – 2014-09-26 11:16:10

相關問題