2014-09-25 48 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

相关问题