Go语言实现指定长度字符串截断并按需追加省略号方案咨询
问题原因
你两次实现的核心问题是没有对原字符串长度和指定宽度做判断逻辑,直接在最终输出结果后拼接了...,不管是否满足截断条件。
正确实现代码
package main import ( "fmt" ) // truncateString 字符串截断函数 // 参数text: 待处理的原字符串 // 参数width: 截断宽度 // 返回值: 处理后的字符串 func truncateString(text string, width int) string { // 仅当原字符串长度超过宽度时才执行截断加后缀操作 if len(text) > width { return text[:width] + "..." } // 长度未超过直接返回原串 return text } func main() { var text string var width int fmt.Scanf("%s %d", &text, &width) res := truncateString(text, width) fmt.Println(res) }
修改说明
- 新增了长度判断分支,完全符合业务需求规则:长度超过宽度时截断加
...,否则直接返回原串 - 基于当前业务所有字符都是单字节的前提,直接用
len()获取字符串长度判断,逻辑简洁效率高 - 把字符串处理逻辑封装为独立函数,和输入输出逻辑解耦,方便后续复用
- 题目明确入参宽度严格大于0,因此没有额外加宽度合法性判断,若后续需要兼容非法入参场景,可在函数开头补充对应容错逻辑即可。
内容的提问来源于stack exchange,提问作者Илья Калошин
相关产品推荐
相关产品推荐

