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:将有序的数字切片转换为数字范围表示的字符串数组的主要内容,如果未能解决你的问题,请参考以下文章