写过C++,基本上都知道atoi是干嘛的,对,如果字符串里面有数字,就将字符串转换成真正的int类型,go里面也有这个方法,她的调用方法是 strconv.atoi,但你知道他们两者有什么不同么?还是有差别的,比如在C++里面,这样一个字符串"123abc",转换成整数,就是123,她会忽略掉后面的字母,但是,在Go里面,这种方法就行不通了,她会直接报错,告诉你里面包含非数字字母,不能转,那该肿么办呢?你需要自己先将后面的字母过滤掉,只保留前面的“123”,再调用strconv.aoi,才能转换成功,话不多说,上一个例子吧:
func getDigitLeft(data string) string {
for k, v := range data {
if !unicode.IsDigit(v) {
return data[:k]
}
}
return data
}
func main() {
fmt.Println(getDigitLeft("1abc"))
return
}