funcpreParam() [][]string { var s = "喝100杯奶茶\n来99个拥抱\n看98场日落\n要97次接吻\n拍96张照片\n买95朵玫瑰\n去94家餐馆\n看93次大海\n走92条小巷\n打91次雨伞\n要90场牵手\n种89个草莓\n盖88次被子\n递87杯温水\n热86次剩饭\n看85次电影\n做84顿午饭\n切83个水果\n吃82次甜品\n喝81次暖茶\n要80次拥抱\n吃79遍烧烤\n烤78次肉串\n涮77次火锅\n来76次海鲜\n吃75种小吃\n参74场晚宴\n喝73杯喜酒\n吃72次西餐\n尝71颗糖果\n给你70枚吻\n荡69遍秋千\n看68次日出\n躺67次草地\n看66次星空\n闻65次头发\n抱64次肩膀\n吻63次脸颊\n亲62次锁骨\n咬61次耳朵\n有60次相拥\n看59场鬼片\n去58个城市\n吃57桶米花\n逛56个商厦\n打55次的士\n坐54次公交\n等53次地铁\n开52次自驾\n站51遍路灯\n睡50次怀里\n去49个鬼屋\n看48场表演\n逗47只动物\n坐46次飞车\n玩45次激流\n滑44次滑梯\n坐43次飞椅\n转42次陀螺\n吊41次吊索\n吃40次小吃\n捂39次肚子\n揉38次肩膀\n捶37次后背\n捏36次小腿\n暖35次脚丫\n摸34次脑袋\n撮33次肋骨\n挠32次手心\n逗31场大笑\n要30次拥吻\n放29个气球\n钓28只大鱼\n玩27次飞镖\n放26次风筝\n冲25次瀑布\n滑24艘小船\n蹦23场蹦极\n跳22次跳伞\n漂21次河流\n生20次闷气\n骑19次单车\n看18场大雪\n玩17遍飞艇\n去16次森林\n探15个峡谷\n踏14个小溪\n爬13座高山\n看12个沙漠\n坐11次轮船\n写10封情书\n唱9首情歌\n堆8个雪人\n摘7朵野花\n看6场流星\n许5个愿望\n醉4次夜酒\n种3棵玫瑰\n吵2次架\n爱1辈子" m := extractKeyValuePairs(s) return m }
funcextractKeyValuePairs(sentence string) [][]string { resultMap := make([][]string, 100) //将句子拆分为行 lines := strings.Split(sentence, "\n") for _, line := range lines { splitWord(line, &resultMap) } return resultMap }
funcsplitWord(input string, m *[][]string) [][]string { var result []string var currentWord string var intWord string var key int for _, char := range input { if unicode.Is(unicode.Han, char) { // 遇到汉字,先保存当前词 if intWord != "" { key, _ = strconv.Atoi(intWord) } // 如果是汉字,添加到当前词中 currentWord += string(char) } elseif unicode.IsDigit(char) { // 遇到数字,先保存当前词 if currentWord != "" { result = append(result, currentWord) currentWord = "" } // 将数字作为单独的词添加 if !unicode.IsSpace(char) { intWord += string(char) } } } // 添加最后一个词(如果有的话) if currentWord != "" { result = append(result, currentWord) } (*m)[key-1] = result
funcForLove() { var s = "喝100杯奶茶\n来99个拥抱\n看98场日落\n要97次接吻\n拍96张照片\n买95朵玫瑰\n去94家餐馆\n看93次大海\n走92条小巷\n打91次雨伞\n要90场牵手\n种89个草莓\n盖88次被子\n递87杯温水\n热86次剩饭\n看85次电影\n做84顿午饭\n切83个水果\n吃82次甜品\n喝81次暖茶\n要80次拥抱\n吃79遍烧烤\n烤78次肉串\n涮77次火锅\n来76次海鲜\n吃75种小吃\n参74场晚宴\n喝73杯喜酒\n吃72次西餐\n尝71颗糖果\n给你70枚吻\n荡69遍秋千\n看68次日出\n躺67次草地\n看66次星空\n闻65次头发\n抱64次肩膀\n吻63次脸颊\n亲62次锁骨\n咬61次耳朵\n有60次相拥\n看59场鬼片\n去58个城市\n吃57桶米花\n逛56个商厦\n打55次的士\n坐54次公交\n等53次地铁\n开52次自驾\n站51遍路灯\n睡50次怀里\n去49个鬼屋\n看48场表演\n逗47只动物\n坐46次飞车\n玩45次激流\n滑44次滑梯\n坐43次飞椅\n转42次陀螺\n吊41次吊索\n吃40次小吃\n捂39次肚子\n揉38次肩膀\n捶37次后背\n捏36次小腿\n暖35次脚丫\n摸34次脑袋\n撮33次肋骨\n挠32次手心\n逗31场大笑\n要30次拥吻\n放29个气球\n钓28只大鱼\n玩27次飞镖\n放26次风筝\n冲25次瀑布\n滑24艘小船\n蹦23场蹦极\n跳22次跳伞\n漂21次河流\n生20次闷气\n骑19次单车\n看18场大雪\n玩17遍飞艇\n去16次森林\n探15个峡谷\n踏14个小溪\n爬13座高山\n看12个沙漠\n坐11次轮船\n写10封情书\n唱9首情歌\n堆8个雪人\n摘7朵野花\n看6场流星\n许5个愿望\n醉4次夜酒\n种3棵玫瑰\n吵2次架\n爱1辈子" param := preParam(s) summary(param) } funcsummary(m [][]string) { fmt.Println("======================================================") var s string for i := len(m) - 1; i > -1; i-- { s += m[i][0] s += strconv.Itoa(i + 1) s += m[i][1] s += "\n" } fmt.Println(s) fmt.Println("======================================================") }
funcsplitSlice(slice [][]string, size int) [][][]string { var result [][][]string // 遍历切片并分割 for i := 0; i < len(slice); i += size { end := i + size if end > len(slice) { end = len(slice) // 确保不超出范围 } result = append(result, slice[i:end]) } return result }