2012-07-28 3 views
2

숫자 문자열을 한 자리 숫자 배열 의 정수로 변환하는 '간단한'문제에 대한 해결책을 찾으려면 몇 시간을 보내야합니다.을 이동하십시오. 여러 가지 접근 방식을 시도했지만 항상 문제가 발생했습니다. 마지막으로 시도한 것이 있습니다. 그것은 빌드하지만, 표시된 라인에서 런타임에 범위를 벗어나는 인덱스를 제공합니다. 아마 어리석은 질문을하는 것에 대해 저를 표시 할 수있는 AH가 몇 개있을 것입니다. 그러나 여러 번의 Google 검색 결과의 처음 50 개 결과에서 해결책을 찾지 못했습니다. 그러니 제발, 저를 마크하십시오, 당신은 그 사람입니다. 다른 99 %에게 : 당신의 인내와 도움에 감사드립니다.문자열을 Go의 한 자리 숫자 배열로 변환

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]) 
    } 
} 

답변

2

여기가 답입니다. 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]) 
    } 
} 
관련 문제