
go 中实现 java 字符串压缩
在 java 中,可以使用 java.util.zip.deflater 类来压缩字符串。而在 go 中,虽然提供了 compress/gzip 库,但它不会输出与 java 一致的压缩结果。
为了实现与 java 相同的压缩行为,可以使用第三方库,例如:
- github.com/ayancy/sdc:该库提供了 deflater 和 inflater 的纯 go 实现,可以与 java 中的对应实现一致。
安装 sdc 库:
立即学习“Java免费学习笔记(深入)”;
go get github.com/ayancy/sdc
使用 sdc 压缩字符串:
package main
import (
"compress/sdc"
"fmt"
"strings"
)
func main() {
str := "this is a test string"
// 创建 Deflater 对象
deflater, err := sdc.NewDeflater(sdc.DefaultCompression)
if err != nil {
fmt.Println(err)
return
}
defer deflater.Close()
// 压缩字符串
compressed, err := deflater.DeflateString(str)
if err != nil {
fmt.Println(err)
return
}
// 输出压缩后的字符串
fmt.Println(strings.Join(compressed, " "))
}










