问题内容 我正在用 Go 编写一个函数来清理单个单词,从而删除每个单词开头和结尾的特殊字符。 即: .-你好,->你好 “背靠背”->背靠背 通过逐个字母检查每一端是否
我正在用 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.PHP.cn/link/55053683268957697aa39fba6f231c68
hello
back-to-back
包字符串
func TrimFunc(s string, f func(rune) bool) string
trimfunc 返回字符串 s 的一个切片,其中删除了满足 f(c) 的所有前导和尾随 unicode 代码点 c。
以上就是从单词中删除特殊字符的详细内容,更多请关注编程网其它相关文章!
--结束END--
本文标题: 从单词中删除特殊字符
本文链接: https://www.lsjlt.com/news/561436.html(转载时请注明来源链接)
有问题或投稿请发送至: 邮箱/279061341@qq.com QQ/279061341
下载Word文档到电脑,方便收藏和打印~
2024-05-24
2024-05-24
2024-05-24
2024-05-24
2024-05-24
2024-05-24
2024-05-24
2024-05-24
2024-05-24
2024-05-24
回答
回答
回答
回答
回答
回答
回答
回答
回答
回答
0