在go语言中实现字符限制器功能示例代码
Go  /  管理员 发布于 2星期前   29
在go语言中怎么把一个字符串限制为X个字符呢?
解决方法:
使用io.ReadAtLeast()函数从字符串中读取,但限制在X个字符之内。
代码示例:
package main
import (
"fmt"
"io"
"strings"
)
//将一个字符串限制为X个字符
func char_limiter(s string, limit int) string {
reader := strings.NewReader(s)
//以指定的字符数限制创建缓冲区
buff := make([]byte, limit)
n, _ := io.ReadAtLeast(reader, buff, limit)
if n != 0 {
//fmt.Printf("\n %s ", buff)
return string(buff) + "..."
} else {
//什么也没有发生,返回原始字符串
return s
}
}
func main() {
str := "ReadAtLeast reads from r into buf until it has read at least min bytes. It returns the number of bytes copied and an error if fewer bytes were read. The error is EOF only if no bytes were read. If an EOF happens after reading fewer than min bytes, ReadAtLeast returns ErrUnexpectedEOF. If min is greater than the length of buf, ReadAtLeast returns ErrShortBuffer. On return, n >= min if and only if err == nil."
fmt.Printf("原文 : [%s] \n", str)
//限于10个字符
fmt.Println("10个字符: ", char_limiter(str, 10))
//限于30个字符
fmt.Println("30个字符: ", char_limiter(str, 30))
//限于100个字符
fmt.Println("100个字符: ", char_limiter(str, 100))
}
输出:
原文:[ReadAtLeast reads from r into buf until it has read at least min bytes. It returns the number of bytes copied and an error if fewer bytes were read. The error is EOF only if no bytes were read. If an EOF happens after reading fewer than min bytes, ReadAtLeast returns ErrUnexpectedEOF. If min is greater than the length of buf, ReadAtLeast returns ErrShortBuffer. On return, n >= min if and only if err == nil.]
10个字符:ReadAtLeas...
30个字符:ReadAtLeast reads from r into...
100个字符:ReadAtLeast reads from r into buf until it has read at least min bytes. It returns the number of byt
相关文章
在go语言中实现字数限制器功能示例代码
博主 在
2023年国务院办公厅春节放假通知:1月21日起休7天中评论 @ xiaoB 你只管努力,剩下的叫给天意;天若有情天亦老,..xiaoB 在
2023年国务院办公厅春节放假通知:1月21日起休7天中评论 会不会春节放假后又阳一次?..BUG4 在
你翻墙过吗?国内使用vpn翻墙可能会被网警抓,你需了解的事中评论 不是吧?..博主 在
go语言+beego框架中获取get,post请求的所有参数中评论 @ t1 直接在router.go文件中配就ok..Jade 在
如何在MySQL查询中获得当月记录中评论 Dear zongscan.com team, We can skyroc..
Copyright·© 2019 侯体宗版权所有·
粤ICP备20027696号