2017-05-23 1 views
0

내가 임의의 숫자에 의해 문자열의 문자를 대체 할 코드의 조각을 실행하기 위해 노력하고있어 golang이 실행golang 번호로 교체 문자열 문자

//Get the position between 0 and the length of the string-1 to insert a random number 
    position := rand.Intn(count - 1) 
    strings.Replace(RandomString,) 

    fmt.Println("Going to change the position number: ", position) 
    //Insert a random number between [0-9] in the position 
    RandomString = RandomString[:position] + string(rand.Intn(9)) + RandomString[position+1:] 

, 출력은 다음과 같습니다

I was going to generate.. ljFsrPaUvmxZFFw 
Going to change the position number: 2 
Random string: lsrPaUvmxZFFw 

누구든지 원하는 문자열 위치에 해당 번호를 삽입하는 데 도움이 될 수 있습니까? 나는 이것에 대한 중복 사례를 찾지 못했습니다.

미리 감사드립니다.

+1

사용하고 싶습니다. – RayfenWindspear

+0

완료. 어떻게 그걸 기억하지 못했을까요? : facepalm : –

+1

뒤에서 '문자열'은 단지 [[] 바이트 '라는 것을 기억하십시오. 'int'를'string'으로 형변환하려고 시도했을 때, 원시 번호 인'2' (문자가 아닙니다)를 유니 코드로 표시하려했습니다. – RayfenWindspear

답변

3

[0, 9) 범위에 인쇄 가능한 문자가 없습니다. ascii 값을 원하면 48 ('0')부터 시작하십시오. 당신은 아마 너무 구를 포함, 그래서 당신은 (9)`실제 문자열 값으로`rand.Intn를 변환하는`strconv` 패키지를 사용할 필요가 rand.Intn(10)

string('0' + rand.Intn(10)) 
+0

답변 주셔서 감사합니다! Itoa 또는 this를 사용하면 빠른지 확실하지 않습니다! –

+1

@DavidBarranco : Itoa는 더 많은 작업을 수행하므로 본질적으로 더 빠를 것입니다. 문자열 조작과 관련해서는별로 중요하지 않습니다. – JimB

+0

팁을 주셔서 감사합니다. 마지막으로이 방법으로 추가되었습니다. 감사합니다. –