【问题标题】:Convert string to array of single digit integers in Go在 Go 中将字符串转换为单位数整数数组
【发布时间】:2012-07-28 16:21:34
【问题描述】:

花了几个小时试图找到解决 Go 中将数字字符串转换为单个数字 整数 数组的“简单”问题的解决方案。尝试了许多不同的方法,但总是遇到问题。这是最后一个尝试的。它在指示的行上构建,但在运行时给出超出范围的索引。可能会有一些 AH 会因为我提出愚蠢的问题而记分我,但我在多个 Google 搜索的前 50 个结果中找不到解决方案。所以来吧,伙计,把我记下来,你就是那个人。致其他 99%:感谢您的耐心和帮助。

package main
import (
    "fmt"
    "strconv"
    "strings"
    )
func main() {
    s := "876567747896354336739443262"
    var dstr []string = strings.SplitAfterN(s,"",len(s))
    var dint []int
    for i := 0; i < len(s); i++ {
        dint[i], _ = strconv.Atoi(dstr[i]) //index out of range at runtime
        fmt.Printf("dstr[%v] is: %s\n", i, dstr[i])
        fmt.Printf("dint[%v] is: %v\n", i, dint[i])
    }
}

【问题讨论】:

    标签: arrays string int digits


    【解决方案1】:

    这就是答案。 Morphiax 以我的方式向我展示了错误。谢谢大佬,赞赏。事实证明这是错误的: var dint []int 。我应该在创建数组时给出大小,而不是初始化它: var dint [27]int 。这是完整的代码:

    package main
    import (
        "fmt"
        "strconv"
        "strings"
        )
    func main() {
        s := "876567747896354336739443262"
        var dstr []string = strings.SplitAfterN(s,"",len(s))
        var dint [27]int
        for i := 0; i < len(s); i++ {
            dint[i], _ = strconv.Atoi(dstr[i]) 
            fmt.Printf("dstr[%v] is: %s\n", i, dstr[i])
            fmt.Printf("dint[%v] is: %v\n", i, dint[i])
        }
    }
    

    【讨论】:

      猜你喜欢
      • 2011-05-15
      • 2020-01-03
      • 1970-01-01
      • 2017-05-20
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多