项目需要处理一段字符串用"2019/10/23","Boy,"China"等字符串按序替换"?,?,?,?,?,?"中的问号。用Replace替换时发现性能占用巨大,所以重新写了一段代码处理该问题,代码如下:
i := 0
j := 0
index := 0
query_value := []byte(trans.query)
var trans_query bytes.Buffer
for i = 0; i < len(query_value); i++ {
if query_value[i] == '?' {
trans_query.Write(query_value[index:i])
params_value := []byte(trans.params[j])
j++
trans_query.Write(params_value[:])
index = 0
} else {
if (index == 0) && (j > 0) {
index = i
}
}
}
if trans_query.Len() > 0 {
trans_query.Write(query_value[index:i])
trans.query = trans_query.String()
}