golang:将有序的数字切片转换为数字范围表示的字符串数组
Posted IGuoSJ
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了golang:将有序的数字切片转换为数字范围表示的字符串数组相关的知识,希望对你有一定的参考价值。
golang:将有序的数字切片转换为数字范围表示的字符串数组
package main
import (
"fmt"
"strconv"
)
func numToRange(numList []int) []string
if len(numList) == 0
return []string
var retList []string
var start = numList[0]
var end int
var listEnd = numList[len(numList)-1]
for i := 0; i < len(numList)-1; i++
if numList[i+1] > numList[i]+1
end = numList[i]
if start == end
retList = append(retList, strconv.Itoa(start))
else
retList = append(retList, strconv.Itoa(start)+"-"+strconv.Itoa(end))
start = numList[i+1]
if start == listEnd
retList = append(retList, strconv.Itoa(start))
else
retList = append(retList, strconv.Itoa(start)+"-"+strconv.Itoa(listEnd))
return retList
func main()
numList := []int4, 5, 7, 9, 10, 11, 14
ret := numToRange(numList)
fmt.Printf("%v\\n", ret)
运行输出:
[4-5 7 9-11 14]
以上是关于golang:将有序的数字切片转换为数字范围表示的字符串数组的主要内容,如果未能解决你的问题,请参考以下文章