为什么我不能从字符串中删除此字符?

时间:2014-09-25 20:40:22

标签: string elixir

Elixir 1.0,Windows 7 x64上的Erlang 17.3。

我输入以下代码:

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

我明白了:

  

**(FunctionClauseError)在String.lstrip / 2中没有匹配的函数子句       (elixir)lib / string.ex:527:String.lstrip(“[9,0]”,“[”)       (elixir)lib / string.ex:564:String.strip / 2

我错过了什么?

我也尝试过s = String.strip(l,",")并犯了同样的错误。还尝试了s = String.strip(l,'[')同样的错误。

我错过了什么?

2 个答案:

答案 0 :(得分:4)

您应该使用单个char作为第二个参数,而不是字符串。

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

的字符串文档中查看更多内容

答案 1 :(得分:3)

您想将字符传递给String.strip/2

s = String.strip(l, ?[)

正如Shashidhar在评论中指出的那样,String.strip/2已从Elixir文档中删除,将来可能会完全删除。建议的替换是String.trim/2,它将String作为其第二个参数:

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