如何为字符串首尾添加字符?是否有现成实现函数?
给字符串首尾添加字符的现成函数方案
嘿,看你用的'<' ++ "example" ++ '>'这种写法,应该是在Haskell里开发吧?刚好可以针对这个场景给你捋捋:
1. Haskell 场景下的方案
用 Data.Text 模块(推荐)
如果你用的是更高效的Text类型(而不是原生的String),标准库直接提供了现成的surround函数,完美解决你的需求:
import Data.Text (Text, surround, pack, unpack) -- 把普通字符串转成Text,包裹后再转回String(如果需要的话) wrappedText :: String wrappedText = unpack $ surround (pack "<>") (pack "example") -- 结果就是 "<example>"
这个函数可以接受任意首尾的字符串(不止单个字符),比如想加<!--和-->也完全没问题。
用原生 String 类型
原生String(本质是[Char])的标准库没有专门的包裹函数,但自己写一个超级简单,几行代码的事:
-- 针对单个首尾字符的版本 wrapChar :: Char -> Char -> String -> String wrapChar open close s = open : s ++ [close] -- 调用示例:wrapChar '<' '>' "example" → "<example>" -- 更通用的、支持字符串首尾的版本 wrapStr :: String -> String -> String -> String wrapStr prefix suffix s = prefix ++ s ++ suffix -- 调用示例:wrapStr "<" ">" "example" → "<example>"
其实甚至不用单独写函数,直接写"<" ++ s ++ ">"也很直观,完全够用。
2. 其他编程语言的小补充
如果是用其他语言,大多也有便捷的方式:
- Python:直接用f-string
f"<{your_string}>",或者字符串格式化"<{}>".format(your_string),比单独写函数更顺手 - JavaScript:用模板字符串
<${yourString}>就能搞定 - Java:可以用
String.format("<%s>", yourString),或者Guava库的Strings.prefixSuffixJoiner("<", ">").join(yourString)
总的来说,要么直接用语言自带的字符串格式化能力,要么写个超简单的工具函数,成本都很低~
内容的提问来源于stack exchange,提问作者Pedro Lima
相关产品推荐
相关产品推荐

