golang中字符串的處理?人的成長過程充滿了曲折坎坷,在成長的道路上我們需要根據不同的場景不斷地變換自己的角色在家裡我們是兒女;在學校我們是學生或教師;結婚了我們是丈夫或妻子;生子了我們是父母……,現在小編就來說說關于golang中字符串的處理?下面内容希望能幫助到你,我們來一起看看吧!
人的成長過程充滿了曲折坎坷,在成長的道路上我們需要根據不同的場景不斷地變換自己的角色。在家裡我們是兒女;在學校我們是學生或教師;結婚了我們是丈夫或妻子;生子了我們是父母……
就像是我們在程序開發編寫代碼的時候,需要将數據根據需要轉換成不同的類型。
正文前些天遇到一個需求,從一串字符中将 n% 提取出來,再将 n% 轉換為 n ,即将字符串類型(string)的 n% 轉換為int類型的 n ,過程如下:
// 導入需要使用到的包
import (
// 包 "fmt"主要包含了格式化I/O函數,類似于C語言的printf和scanf。格式字符串的規則來源于C語言,但更簡單一些。
"fmt"
// 包 “strconv” 主要包含了對字符串和基本數據類型之間的轉換函數。
// 基本數據類型包括:布爾、整型(包括有/無符号、二進制、八進制、十進制和十六進制)和浮點型等。
"strconv"
)
func main(){
// 要轉換的目标對象
v1 := "37%"
/*
1、先轉換成切換,然後再轉換成string類型,當然也可以這樣寫:v2 := v[:len(v)-1](為什麼要這樣轉,和字符編碼有關,這裡還涉及到GO語言的性能問題,還是新手先會用就行,以後進階研究一下)
2、len() 是獲取字符串的長度的函數
3、[:len(v)-1] 指定切片的長度,具體理解就是截取 “37%” 除 “%” 以外的其他内容,因為 “%” 前面的數字長度可能是不固定的甚至可能出現小數的情況,所以在處理的時候不能事先指定長度,隻能通過動态計算出字符長度
*/
v2 := string([]byte(v)[:len(v)-1])
// 最後通過 "strconv"包的Atoi函數将string轉換為int
// Atoi函數有兩個返回值,result和error,如果不需要抛出異常可以把error賦值變量寫為“_”,如“v3,_ := usageNum, _ := strconv.Atoi(v2)”
v3,err := usageNum, _ := strconv.Atoi(v2)
if (err!=nil) {
fmt.Println(err.Error())
}
fmt.Printf("v3: %v, type: %T\n", v3, v3) // v3: 37, type: int
}
肯定有人會問為什麼不直接把數字提取出來而是要這麼麻煩進行轉換呢?隻是場景需要而已。還想說的是這個隻是我已經學會的方法歡迎各位大佬留言提供其他方法供本萌新學習。
,更多精彩资讯请关注tft每日頭條,我们将持续为您更新最新资讯!