如何在一行代码中仅调用一次String.replace()处理多个目标字符串
方案1:两个字段都需替换
通过「字符串拼接→单次替换→拆分」的方式实现,仅调用1次String.replace,单行写法如下:
[element, object | _rest] -> String.replace(element <> "|" <> object, "-", "_") |> String.split("|")
注:默认
element和object本身不含分隔符|,如果有冲突可以替换为不会出现在两个字段中的特殊字符(如零宽字符\u200B)。
方案2:二选一替换单个字段
如果你的原始逻辑是仅替换两个字段中的某一个,可以先判定替换目标,单次调用替换后组装结果,示例(优先替换含-的object,否则替换element):
[element, object | _rest] -> (res = String.replace(if(String.contains?(object, "-"), do: object, else: element), "-", "_"); if(String.contains?(object, "-"), do: [element, res], else: [res, object]))
内容的提问来源于stack exchange,提问作者Borybar
相关产品推荐
相关产品推荐

