第七色在线视频,2021少妇久久久久久久久久,亚洲欧洲精品成人久久av18,亚洲国产精品特色大片观看完整版,孙宇晨将参加特朗普的晚宴

為了賬號安全,請及時綁定郵箱和手機立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

Golang:如何將字符串轉(zhuǎn)換為 [] int?

Golang:如何將字符串轉(zhuǎn)換為 [] int?

Go
慕尼黑的夜晚無繁華 2022-01-17 17:55:36
我處理這個問題。我需要將字符串轉(zhuǎn)換為 int。在這種情況下,我需要將“5 2 4 6 1 3”轉(zhuǎn)換為例如 [6]int{5,2,4,6,1,3}。我是按照這段代碼寫的,尤其是AizuArray(). 似乎元素在這里是 int 。請告訴我我的方法是否正確?或者你能告訴我更好的方法嗎?我問這個是因為我覺得我的方式是多余的,而Java 方式更容易。謝謝你。package mainimport (    "fmt"    "reflect"    "strconv"    "strings")func AizuArray(A string, N string) []int {    a := strings.Split(A, " ")    n, _ := strconv.Atoi(N) // int 32bit    b := make([]int, n)    for i, v := range a {        b[i], _ = strconv.Atoi(v)    }    return b}func main() {    A := "5 2 4 6 1 3"    N := "6"    j := strings.Split(A, " ")    for _, v := range j {        fmt.Println(reflect.TypeOf(v))    }    b := AizuArray(A, N)    fmt.Println(b)    for _, v := range b {        fmt.Println(reflect.TypeOf(v))    }}
查看完整描述

3 回答

?
慕少森

TA貢獻(xiàn)2019條經(jīng)驗 獲得超9個贊

請告訴我我的方法是否正確?


如果您只想將字符串(空格分隔的整數(shù))轉(zhuǎn)換為 []int


func AizuArray(A string, N string) []int {

 a := strings.Split(A, " ")

 n, _ := strconv.Atoi(N) // int 32bit

 b := make([]int, n)

 for i, v := range a {

     b[i], err = strconv.Atoi(v)

     if err != nil {

        //proper err handling

        //either b[i] = -1 (in case positive integers)

     }

 }

 return b

}

那么你的方法是正確的。


我處理這個問題。


在這個問題的上下文中,您想從 STDIN 獲取輸入,所以應(yīng)該這樣做,


package main


import (

    "fmt"

)


func insertionSort(arr []int) {

    //do further processing here.

   fmt.Println(arr)

}


func main() {

    var N int

    fmt.Scanf("%d", &N)

    b := make([]int, N)

    for iter:=0;iter<N;iter++ {

        fmt.Scanf("%d",&b[iter])

    }

    insertionSort(b)

}


查看完整回答
反對 回復(fù) 2022-01-17
?
智慧大石

TA貢獻(xiàn)1946條經(jīng)驗 獲得超3個贊

我認(rèn)為你把事情復(fù)雜化了,除非我遺漏了什么。


https://play.golang.org/p/HLvV8R1Ux-


package main


import (

    "fmt"

    "strings"

    "strconv"

)


func main() {

    A := "5 2 4 6 1 3"


    strs := strings.Split(A, " ")

    ary := make([]int, len(strs))

    for i := range ary {

        ary[i], _ = strconv.Atoi(strs[i])

    }


    fmt.Println(ary)    

}


查看完整回答
反對 回復(fù) 2022-01-17
?
眼眸繁星

TA貢獻(xiàn)1873條經(jīng)驗 獲得超9個贊

這是一個更簡單的示例,您不必拆分字符串:


str := "123456"

if _, err := strconv.Atoi(str); err != nil {

    // do stuff, in case str can not be converted to an int

}

var slice []int // empty slice

for _, digit := range str {

    slice = append(slice, int(digit)-int('0')) // build up slice

}

為什么需要int('0')? 因為int()會將字符轉(zhuǎn)換為對應(yīng)的 ASCII 碼(此處為 ascii 表)。對于 0,即 48。因此,您必須從“ascii 十進(jìn)制”中您的數(shù)字對應(yīng)的任何內(nèi)容中減去 48。


查看完整回答
反對 回復(fù) 2022-01-17
  • 3 回答
  • 0 關(guān)注
  • 258 瀏覽
慕課專欄
更多

添加回答

舉報

0/150
提交
取消
微信客服

購課補貼
聯(lián)系客服咨詢優(yōu)惠詳情

幫助反饋 APP下載

慕課網(wǎng)APP
您的移動學(xué)習(xí)伙伴

公眾號

掃描二維碼
關(guān)注慕課網(wǎng)微信公眾號