跳到主要内容

8-字符串转换整数

字符串转换整数

func myAtoi(s string) int {
// 去除前导空格
s = strings.TrimSpace(s)
if len(s) == 0 {
return 0
}

// 判断正负
sign := 1

// 循环判断,因为有可能是 -+ 这种
for i, v := range s {
if v == '-' && i == 0 {
sign = -1
continue
}
if v == '+' && i == 0 {
continue
}
// 遇到非数字,直接返回
if v < '0' || v > '9' {
return 0
}

s = s[i:]
break
}

// 转换数字
res := 0
for _, v := range s {
if v < '0' || v > '9' {
break
}
res = res*10 + int(v-'0')
if res > math.MaxInt32 {
if sign == 1 {
return math.MaxInt32
}
return math.MinInt32
}
}

return res * sign
}