在Golang中实现返回相似数据的字符串类型结果的技术求助
实现包含指定字符串的相似数据查询
首先,你需要导入strings包来使用Contains(判断子串是否存在)和Join(将匹配结果拼接成字符串)功能。下面是修改后的完整实现:
package main import ( "fmt" "strings" ) func FindSimilarData(input string, data ...string) string { // 用切片收集所有匹配的结果 matches := []string{} for _, d := range data { // 判断当前字符串是否包含输入的子串 if strings.Contains(d, input) { matches = append(matches, d) } } // 将匹配的切片用逗号加空格拼接成单个字符串返回 return strings.Join(matches, ", ") } func main() { fmt.Println(FindSimilarData("iphone", "laptop", "iphone 13", "iphone 12", "iphone 12 pro")) // 输出: iphone 13, iphone 12, iphone 12 pro }
关键说明:
strings.Contains(d, input):检查字符串d是否包含input作为子串,返回布尔值,以此判断是否属于相似数据- 用切片
matches收集所有符合条件的字符串,避免直接字符串拼接的性能问题(频繁拼接会产生大量临时对象) strings.Join(matches, ", "):将切片中的所有元素拼接成一个以,分隔的字符串,作为最终返回结果
如果需要其他返回格式(比如换行分隔、分号分隔),只需要修改Join的第二个参数即可;如果需要返回切片而非字符串,直接返回matches即可。
内容的提问来源于stack exchange,提问作者zacharyy
相关产品推荐
相关产品推荐

