我在围棋中编写了一个清理单个单词的函数,这样每个单词的开头和结尾的特殊字符都会被删除.
即:
- -你好,->;你好
- 《背靠背》-&>;背靠背
最后得到了以下结果,通过逐个字母地判断它们是否属于独脚码.Letter set,这很好用,但我想知道是否有更好或更有效的方法来做到这一点?我try 了字符串.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])
}