Еще условие: строка не должна начинаться с "0".
Например:
"0" – нет
"1" – да
"07" – нет
"18446744073709551615" (264 − 1) – да
"18446744073709551616" (264) – нет
Ответ
Как вариант
package main
import (
"fmt"
"strconv"
"strings"
)
func checkStr(str string) bool {
if strings.TrimPrefix(str, "0") != str {
fmt.Println("Начинается с 0")
return false
}
if _, err := strconv.ParseUint(str, 10, 64); err != nil {
fmt.Println(err)
return false
}
return true
}
func main() {
fmt.Println(checkStr("18446744073709551615"))
fmt.Println(checkStr("18446744073709551616"))
fmt.Println(checkStr("1b"))
fmt.Println(checkStr("-1234567"))
fmt.Println(checkStr("07"))
}
Комментариев нет:
Отправить комментарий