2014-09-25 11 views
1

Elixir 1.0, Erlang 17.3 на Windows 7 x64.Почему я не могу удалить этот символ из строки?

я печатаю этот код:

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

И я получаю это:

** (FunctionClauseError) нет функции согласования пункта в String.lstrip/2 (эликсир) Lib/строки. например: 527: String.lstrip ("[9,0]", "[") (эликсир) Библиотека/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 был исключен из Elixir документации и могут быть полностью удалены в будущем. Предлагаемая замена String.trim/2 который принимает строку в качестве второго аргумента:

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

String.strip/2 API устарел. https://stackoverflow.com/a/38073411/3142192 –

4

Вы должны использовать один символ в качестве второго пар, а не строки.

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

Вы знаете, что я видел эту документацию, но не уделял достаточно пристального внимания. Я пытался "? [" (Хотя я не упоминал об этом в вопросе). –

Смежные вопросы