目錄
1. 字符串與整數的轉換
2. 字符串與浮點數的轉換
3. 布爾值的轉換
4. 字符串的轉義
5. 補充:rune 類型的使用
方法功能詳解
代碼示例:
1. 字符串與整數的轉換
方法名稱 | 功能描述 | 示例 |
---|---|---|
Atoi | 將字符串轉換為十進制整數。 | strconv.Atoi("123") |
Itoa | 將整數轉換為十進制字符串。 | strconv.Itoa(123) |
ParseInt | 將字符串解析為指定進制的整數。 | strconv.ParseInt("520", 10, 64) |
ParseUint | 將字符串解析為指定進制的無符號整數。 | strconv.ParseUint("FF", 16, 64) |
FormatInt | 將整數轉換為指定進制的字符串。 | strconv.FormatInt(520, 8) |
FormatUint | 將無符號整數轉換為指定進制的字符串。 | strconv.FormatUint(520, 8) |
2. 字符串與浮點數的轉換
方法名稱 | 功能描述 | 示例 |
---|---|---|
ParseFloat | 將字符串解析為浮點數。 | strconv.ParseFloat("3.1415926", 64) |
FormatFloat | 將浮點數轉換為字符串,并格式化。 | strconv.FormatFloat(3.1415926, 'f', 3, 32) |
3. 布爾值的轉換
方法名稱 | 功能描述 | 示例 |
---|---|---|
FormatBool | 將布爾值轉換為字符串 "true" 或 "false"。 | strconv.FormatBool(true) |
4. 字符串的轉義
方法名稱 | 功能描述 | 示例 |
---|---|---|
Quote | 返回帶雙引號的轉義字符串。 | strconv.Quote("hello world") |
QuoteRuneToASCII | 返回單個字符的轉義表示,僅使用ASCII字符。 | strconv.QuoteRuneToASCII('😊') |
5. 補充:rune 類型的使用
方法名稱 | 功能描述 | 示例 |
---|---|---|
rune | 表示單個 Unicode 碼點。 | var r rune = 'A' |
FormatUint | 轉換為整數值查看 Unicode 碼點。 | fmt.Printf("Unicode code point of '世' is %U\n", '世') |
方法功能詳解
-
字符串與整數的轉換
strconv.Atoi(s string)
:將字符串?s
?轉換為十進制整數。如果轉換成功,返回轉換后的整數和?nil
?錯誤;否則,返回 0 和非?nil
?錯誤。strconv.Itoa(i int)
:將整數?i
?轉換為十進制字符串。strconv.ParseInt(s string, base int, bitSize int)
:將字符串?s
?解析為指定?base
?進制的整數,bitSize
?參數可以是 0(表示整數是無符號的)、32 或 64,以指定結果的類型。如果?base
?為 0,則自動檢測進制(默認為十進制,但前綴為 "0x" 的字符串將被解釋為十六進制)。strconv.ParseUint(s string, base int, bitSize int)
:功能與?ParseInt
?類似,但用于無符號整數。strconv.FormatInt(i int64, base int)
:將整數?i
?轉換為指定?base
?進制的字符串。strconv.FormatUint(i uint64, base int)
:將無符號整數?i
?轉換為指定?base
?進制的字符串。
-
字符串與浮點數的轉換
strconv.ParseFloat(s string, bitSize int)
:將字符串?s
?解析為浮點數,bitSize
?為 32 或 64,以指定結果的類型(float32 或 float64)。strconv.FormatFloat(f float64, format byte, precision, bitSize int)
:format
:表示格式,可以是 'f'(定點)、'e'(科學計數)、'g'(根據情況選擇 'e' 或 'f')。precision
:決定結果的小數位數或科學計數法的位數。bitSize
:可以是 32 或 64,表示結果的類型。
-
布爾值的轉換
strconv.FormatBool(b bool)
:將布爾值?b
?轉換為字符串 "true" 或 "false"。
-
字符串的轉義
strconv.Quote(s string)
:返回帶雙引號的字符串,并轉義內部的特殊字符(如 \n、\t 等)。這在需要確保字符串在編程語言語境下正確表示時很有用。strconv.QuoteRuneToASCII(r rune)
:返回單個字符的轉義表示,僅使用 ASCII 字符。對于 Unicode 字符,返回其十六進制轉義形式,如?\U0001F60A
。
-
rune 類型的使用
rune
:是 Go 語言中用于表示單個 Unicode 碼點的內置類型,可以直接賦值字符(如?var r rune = 'A'
)。fmt.Printf("%U", r)
:打印 Unicode 碼點的完整表示,例如?U+0041
?表示字符 'A'。
代碼示例:
package mainimport ("fmt""strconv"
)func main() {n, _ := strconv.Atoi("123")fmt.Printf("%d\n", n)s1 := strconv.Itoa(123)fmt.Printf("%s\n", s1)// 字符串、進制、位數n2, _ := strconv.ParseInt("520", 10, 64)fmt.Printf("%d\n", n2)n3, _ := strconv.ParseUint("FF", 16, 64) // 將十六進制字符串"FF"轉換為無符號整數fmt.Printf("%d\n", n3)//s2 := strconv.FormatBool(true)fmt.Println(s2) // "true"//s3 := strconv.FormatFloat(3.1415926, 'f', 3, 32)fmt.Println(s3)//s4 := strconv.FormatInt(520, 8)fmt.Println(s4)s4 = strconv.FormatUint(520, 8)fmt.Println(s4)//s5 := strconv.Quote("hello world")fmt.Println(s5) // `"hello world"` 返回帶雙引號的字符串//s6 := strconv.QuoteRuneToASCII('!') //單個runefmt.Println(s6) // `'!'`var dst []bytedst = strconv.AppendQuoteRuneToASCII(dst, '😊')fmt.Println(string(dst)) // `\U0001F60A`// rune類型:rune 是一個內置類型,它是 int32 的別名,主要用于表示單個Unicode字符。// 這意味著 rune 可以存儲任何Unicode碼點(code point),包括所有的國際字符、符號以及表情符號等。// 直接定義一個rune變量var r rune = 'A'fmt.Printf("Type of r is %T and value is %c\n", r, r)// 遍歷字符串中的runestr := "Hello, 世界"for _, r := range str {fmt.Printf("%c ", r) // 輸出: H e l l o , 世 界}fmt.Println()// 轉換為整數值查看Unicode碼點fmt.Printf("Unicode code point of '世' is %U\n", '世') // 輸出: Unicode code point of '世' is U+4E16}