字符串拆分和加入

时间:2016-06-20 13:55:02

标签: go

我是go新手,我的数据如下Time Server Type Class Method-Message。在json field delimiter" |"的帮助下设法得到以下数据Time|Server|Type|Class|Method-Message我要分割 - 在第四个索引|Method-Message然后附加一个字段分隔符" |"然后加入以结束以下Time|Server|Type|Class|Method|Message。尝试使用n = s[6 : 6+strings.Index(s[6:], "/")]分割数据,删除-Message然后以Time|Server|Type|Class|Method结束然后我追加字段分隔符然后以Time|Server|Type|Class|Method|Message|结束,但无法附加从数据中删除的-Message

1 个答案:

答案 0 :(得分:6)

我不确定原始字符串中没有strings.Index(s[6:], "/")字符时您使用/的原因,但可以替换-角色有几种方式:

原始尝试拆分和加入两次:

msg := "Time Server Type Class Method-Message"
msg = strings.Join(strings.Split(msg, " "), "|")
msg = strings.Join(strings.Split(msg, "-"), "|")

或者稍微提高效率,只加入一次:

msg := "Time Server Type Class Method-Message"
parts := strings.Split(msg, " ")
parts = append(parts[:4], strings.Split(parts[4], "-")...)
newMsg := strings.Join(parts, "|")

或多次调用strings.Replace

newMsg := strings.Replace(strings.Replace(msg, " ", "|", -1), "-", "|", -1)

或使用单个正则表达式:

newMsg := regexp.MustCompile(`[ -]`).ReplaceAllString(msg, "|")