gpt4 book ai didi

string - 如何删除Erlang中字符串内的周围引号?

转载 作者:行者123 更新时间:2023-12-03 19:49:10 25 4
gpt4 key购买 nike

我正在使用 epgsql在 Erlang 中查询数据库。它返回包含引号的字符串结果,如下所示:"what_was_in_the_row" .如何在处理结果之前删除这些引号?

最佳答案

控制格式 ~p( pretty-print )保留有关打印的变量类型的信息。您正在打印一个字符串,即在 erlang 中,由可打印字符组成的标准整数列表,例如 [101,102,103] 在 shell 中显示为 "efg"

如果你调用 io_lib:format("~p",[[101,102,103]]). ,你会得到结果 ["\"efg\""] 这需要一些解释。

  • 周围的括号表示一个列表,是io_lib:format/2
  • 的返回值类型
  • 然后第一个双引号表示另一个列表,它可能是一个字符串,它是语法糖,但它不是结果的一部分(我说可能是因为任何看起来像字符串的列表都将显示为带有 pretty-print 的字符串),
  • 最后 \" 是一个转义序列,表示单个字符“

  • 您可以评估每个字符串的长度以验证差异:
  • 3 = 长度(“efg”)。
  • 5 = 长度(“\”efg\“”)。

  • 如果要获取不带引号的字符串,必须使用控制格式 ~s
    1> [Res] = io_lib:format("~s",[[101,102,103]]).
    ["efg"]
    2> length(Res).
    3
    3> [Res] = io_lib:format("~s",[Res]).
    ["efg"]

    当然,最后一行表明我的例子很愚蠢。使用 io_lib:format("~s ~s!",["Hello","world"]). 或更复杂的格式,结果的类型为 chars() : char()chars() 的列表。

    关于string - 如何删除Erlang中字符串内的周围引号?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/47736174/

    25 4 0
    Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
    广告合作:1813099741@qq.com 6ren.com