GO語言中的strconv包

在go語言中經常用到字符串和其它類型進行轉換,strconv包能實現這個功能。

1.string轉int

有兩種方法,可以使用func Atoi(s string) (i int, err error),Atoi代表Ascii to Integer。還可以使用func ParseInt(s string, base int, bitSize int) (i int64, err error),base爲進制,值爲2~36,如果爲0,則會根據字符串自動判斷,前置爲"0x"的是16進制,前置爲"0"的是8進制,其餘的爲10進制,bitSize是返回的整數類型,0、8、16、32分別代表int、int8、int16、int32。

func main() {
	a,_:=strconv.Atoi("123456")
	fmt.Printf("a values %v\n",a)
	b,_:=strconv.ParseInt("123456",10,32)
	fmt.Printf("b values %v\n",b)
	c,_:=strconv.ParseInt("123456",10,16)
	fmt.Printf("c values %v\n",c)
	d,_:=strconv.ParseInt("111",2,32)
	fmt.Printf("d values %v\n",d)
}

以上代碼會打印出

a values 123456
b values 123456
c values 32767
d values 7
看一下c,由於返回的是int16類型的值,int16類型的值的範圍爲-32768~32767,超過了返回類型的範圍,會被截斷,所以選擇返回值類型時要選擇正確。

2.int轉string

使用func Itoa(i int) string方法,將int類型的轉string類型。

func main() {
	var i int = 12345
	s:=strconv.Itoa(i)
	fmt.Printf("s values %v,type is %T",s,s)
}

以上會輸出

s values 12345,type is string

3.string轉bool

func main(){
	fmt.Println(strconv.ParseBool("t"))
	fmt.Println(strconv.ParseBool("TRUE"))
	fmt.Println(strconv.ParseBool("true"))
	fmt.Println(strconv.ParseBool("True"))
	fmt.Println(strconv.ParseBool("0"))
	fmt.Println(strconv.ParseBool("f"))
}

以上會輸出

true <nil>
true <nil>
true <nil>
true <nil>
false <nil>
false <nil>

4.string轉float

func ParseFloat(s string, bitSize int) (f float64, err error)

mian(){
	f,err:=strconv.ParseFloat("20.58",64)
	if err!=nil {
		panic(err)
	}
	fmt.Printf("%v,%T",f,f)
}

輸出

20.58,float64

5.float轉string

func FormatFloat(f float64, fmt byte, prec, bitSize int) string

其中fmt表示格式,’f’(-ddd.dddd)、’b’(-ddddp±ddd,指數爲二進制)、’e’(-d.dddde±dd,十進制指數)、’E’(-d.ddddE±dd,十進制指數)、’g’(指數很大時用’e’格式,否則’f’格式)、’G’(指數很大時用’E’格式,否則’f’格式);prec表示控制的精度(排除指數部分):對’f’、’e’、’E’,它表示小數點後的數字個數;對’g’、’G’,它控制總的數字個數。如果prec 爲-1,則代表使用最少數量的、但又必需的數字來表示f。

mian(){
	str:=strconv.FormatFloat(23.5670,'f',-1,64)
	str2:=strconv.FormatFloat(23.5670,'f',5,64)
	fmt.Println(str)
	fmt.Println(str2)
}

輸出

23.567
23.56700

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章