1 Star 1 Fork 0

无痕心欲 / gorm-driver-dameng

加入 Gitee
与超过 1200万 开发者一起发现、参与优秀开源项目,私有仓库也完全免费 :)
免费加入
克隆/下载
zzt.go 4.20 KB
一键复制 编辑 原始数据 按行查看 历史
无痕心欲 提交于 2023-12-14 18:17 . 达梦gorm的orm
/*
* Copyright (c) 2000-2018, 达梦数据库有限公司.
* All rights reserved.
*/
package util
import (
"bytes"
"runtime"
"strings"
"time"
"unicode"
)
type stringutil struct{}
var StringUtil = &stringutil{}
/*----------------------------------------------------*/
func (StringUtil *stringutil) LineSeparator() string {
var lineSeparator string
if strings.Contains(runtime.GOOS, "windos") {
lineSeparator = "\r\n"
} else if strings.Contains(runtime.GOOS, "mac") {
lineSeparator = "\r"
} else {
lineSeparator = "\n"
}
return lineSeparator
}
func (StringUtil *stringutil) Equals(str1 string, str2 string) bool {
return str1 == str2
}
func (StringUtil *stringutil) EqualsIgnoreCase(str1 string, str2 string) bool {
return strings.ToUpper(str1) == strings.ToUpper(str2)
}
func (StringUtil *stringutil) StartsWith(s string, subStr string) bool {
return strings.Index(s, subStr) == 0
}
func (StringUtil *stringutil) StartWithIgnoreCase(s string, subStr string) bool {
return strings.HasPrefix(strings.ToLower(s), strings.ToLower(subStr))
}
func (StringUtil *stringutil) EndsWith(s string, subStr string) bool {
return strings.LastIndex(s, subStr) == len(s)-1
}
func (StringUtil *stringutil) IsDigit(str string) bool {
if str == "" {
return false
}
sz := len(str)
for i := 0; i < sz; i++ {
if unicode.IsDigit(rune(str[i])) {
continue
} else {
return false
}
}
return true
}
func (StringUtil *stringutil) FormatDir(dir string) string {
dir = strings.TrimSpace(dir)
if dir != "" {
if !StringUtil.EndsWith(dir, PathSeparator) {
dir += PathSeparator
}
}
return dir
}
func (StringUtil *stringutil) HexStringToBytes(s string) []byte {
str := s
bs := make([]byte, 0)
flag := false
str = strings.TrimSpace(str)
if strings.Index(str, "0x") == 0 || strings.Index(str, "0X") == 0 {
str = str[2:]
}
if len(str) == 0 {
return bs
}
var bsChr []byte
l := len(str)
if l%2 == 0 {
bsChr = []byte(str)
} else {
l += 1
bsChr = make([]byte, l)
bsChr[0] = '0'
for i := 0; i < l-1; i++ {
bsChr[i+1] = str[i]
}
}
bs = make([]byte, l/2)
pos := 0
for i := 0; i < len(bsChr); i += 2 {
bt := convertHex(bsChr[i])
bt2 := convertHex(bsChr[i+1])
if int(bt) == 0xff || int(bt2) == 0xff {
flag = true
break
}
bs[pos] = byte(bt*16 + bt2)
pos++
}
if flag {
bs = ([]byte)(str)
}
return bs
}
func convertHex(chr byte) byte {
if chr >= '0' && chr <= '9' {
return chr - '0'
} else if chr >= 'a' && chr <= 'f' {
return chr - 'a' + 10
} else if chr >= 'A' && chr <= 'F' {
return chr - 'A' + 10
} else {
return 0xff
}
}
func (StringUtil *stringutil) BytesToHexString(bs []byte, pre bool) string {
if bs == nil {
return ""
}
if len(bs) == 0 {
return ""
}
hexDigits := "0123456789ABCDEF"
ret := new(strings.Builder)
for _, b := range bs {
ret.WriteByte(hexDigits[0x0F&(b>>4)])
ret.WriteByte(hexDigits[0x0F&b])
}
if pre {
return "0x" + ret.String()
}
return ret.String()
}
func (StringUtil *stringutil) ProcessSingleQuoteOfName(name string) string {
return StringUtil.processQuoteOfName(name, "'")
}
func (StringUtil *stringutil) ProcessDoubleQuoteOfName(name string) string {
return StringUtil.processQuoteOfName(name, "\"")
}
func (StringUtil *stringutil) processQuoteOfName(name string, quote string) string {
if quote == "" || name == "" {
return name
}
temp := name
result := bytes.NewBufferString("")
index := -1
quetoLength := len(quote)
index = strings.Index(temp, quote)
for index != -1 {
result.WriteString(temp[:index+quetoLength])
result.WriteString(quote)
temp = temp[index+quetoLength:]
index = strings.Index(temp, quote)
}
result.WriteString(temp)
return result.String()
}
func (StringUtil *stringutil) FormatTime() string {
return time.Now().Format("2006-01-02 15:04:05")
}
func (StringUtil *stringutil) SubstringBetween(str string, open string, close string) string {
if str == "" {
return ""
}
iopen := -1
if open != "" {
iopen = strings.Index(str, open)
}
iclose := -1
if close != "" {
iclose = strings.LastIndex(str, close)
}
if iopen == -1 && iclose == -1 {
return ""
} else if iopen == -1 {
return str[0:iclose]
} else if iclose == -1 {
return str[iopen:]
} else {
return str[iopen:iclose]
}
}
Go
1
https://gitee.com/tdxmkf123/gorm-driver-dameng.git
git@gitee.com:tdxmkf123/gorm-driver-dameng.git
tdxmkf123
gorm-driver-dameng
gorm-driver-dameng
v1.0.2

搜索帮助