goProject/trunk/goutil/stringUtil/string_builder.go

58 lines
1.1 KiB
Go
Raw Normal View History

2025-01-06 16:01:02 +08:00
package stringUtil
import (
"bytes"
"fmt"
)
type StringBuilder struct {
buffer bytes.Buffer
}
func NewStringBuilder() *StringBuilder {
var builder StringBuilder
return &builder
}
func (builder *StringBuilder) Append(format string, args ...interface{}) *StringBuilder {
if len(args) > 0 {
format = fmt.Sprintf(format, args...)
}
builder.buffer.WriteString(format)
return builder
}
func (builder *StringBuilder) AppendLine(format string, args ...interface{}) *StringBuilder {
if len(args) > 0 {
format = fmt.Sprintf(format, args...)
}
builder.buffer.WriteString(format + "\n")
return builder
}
func (builder *StringBuilder) AppendStrings(ss ...string) *StringBuilder {
for i := range ss {
builder.buffer.WriteString(ss[i])
}
return builder
}
func (builder *StringBuilder) AppendLines(ss ...string) *StringBuilder {
for i := range ss {
builder.buffer.WriteString(ss[i] + "\n")
}
return builder
}
func (builder *StringBuilder) Clear() *StringBuilder {
var buffer bytes.Buffer
builder.buffer = buffer
return builder
}
func (builder *StringBuilder) ToString() string {
return builder.buffer.String()
}