最新公告
  • 欢迎您光临码农资源网,本站秉承服务宗旨 履行“站长”责任,销售只是起点 服务永无止境!加入我们
  • 从单词中删除特殊字符

    从单词中删除特殊字符

    问题内容

    我正在用 go 编写一个函数来清理单个单词,从而删除每个单词开头和结尾的特殊字符。

    即:

    • .-你好,->你好
    • “背靠背”->背靠背

    通过逐个字母检查每一端是否属于 unicode.letter 集,得到以下结果,效果很好,但我想知道是否有更好或更有效的方法来做到这一点?我尝试了 strings.trimleft/right,但随后我必须定义自己的一组要删除的字符。如果使用预定义的集合就好了。

    func TrimWord(word []rune) string {
        var prefix int = 0
        var suffix int = len(word)
    
        for x := 0; x < len(word); x++ {
            if !unicode.IsLetter(word[x]) {
                prefix++
            } else {
                break
            }
        }
    
        for x := len(word) - 1; x >= 0; x-- {
            if suffix == prefix {
                break
            }
            if !unicode.IsLetter(word[x]) {
                suffix--
            } else {
                break
            }
        }
        return string(word[prefix:suffix])
    }

    正确答案

    package main
    
    import (
        "fmt"
        "strings"
        "unicode"
    )
    
    func trimword(s string) string {
        return strings.trimfunc(s, func(r rune) bool {
            return !unicode.isletter(r)
        })
    }
    
    func main() {
        fmt.println(trimword(`.-hello,`))       // -> hello
        fmt.println(trimword(`"back-to-back"`)) // -> back-to-back
    }

    https://www.codesou.cn/link/55053683268957697aa39fba6f231c68

    hello
    back-to-back

    包字符串

    func TrimFunc(s string, f func(rune) bool) string

    trimfunc 返回字符串 s 的一个切片,其中删除了满足 f(c) 的所有前导和尾随 unicode 代码点 c。

    想要了解更多内容,请持续关注码农资源网,一起探索发现编程世界的无限可能!
    本站部分资源来源于网络,仅限用于学习和研究目的,请勿用于其他用途。
    如有侵权请发送邮件至1943759704@qq.com删除

    码农资源网 » 从单词中删除特殊字符
    • 7会员总数(位)
    • 25846资源总数(个)
    • 0本周发布(个)
    • 0 今日发布(个)
    • 293稳定运行(天)

    提供最优质的资源集合

    立即查看 了解详情