返回介绍

字符串数组排序

发布于 2023-06-25 22:01:52 字数 2042 浏览 0 评论 0 收藏 0

当数字存储为字符串时,这是编程中的一个问题-因为作为字符串,当按字母顺序排序时,它们将从头到尾按每个数字排列。例如,在处理带编号的文件名时,您可能会遇到此问题,这些文件名将被视为字符串,但是我们可能需要按顺序处理它们。

在下面的示例中,我们同时使用sort和strconv包对数组进行排序,并将字符串转换为比较函数中的数字。转换为整数可以为我们提供可靠的排序。

package main 

import (
    "fmt"
    "sort"
    "strconv"
)

func main() {

    myList := []string{"1", "10", "11", "2", "3", "4", "5", "6", "7", "8", "9"}

    fmt.Printf("Before: %v\n", myList)

    // Pass in our list and a func to compare values
    sort.Slice(myList, func(i, j int) bool {
        numA, _ := strconv.Atoi(myList[i])
        numB, _ := strconv.Atoi(myList[j])
        return numA < numB
    })

    fmt.Printf("After: %v\n", myList)
}

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。
列表为空,暂无数据
    我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
    原文