在go语言中实现字符限制器功能示例代码
在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语言中实现字数限制器功能示例代码
https://www.zongscan.com/demo333/96220.html
相关文章