Golang如何去判断字符串是数字还是字符

weixin_38056080 2019-09-20 10:09:28
请问高手,Golang如何去判断字符串是数字还是字符,好像网上没有好的答案。
...全文
2364 7 打赏 收藏 转发到动态 举报
写回复
用AI写文章
7 条回复
切换为时间正序
请发表友善的回复…
发表回复
weixin_38102396 2019-09-20
  • 打赏
  • 举报
回复
不过这样仅限于int型了
weixin_38104476 2019-09-20
  • 打赏
  • 举报
回复
找到 ".", 并去掉,再转换,成功就是数字(整形/浮点数)
weixin_38058428 2019-09-20
  • 打赏
  • 举报
回复
func IsSingleDigit(data string) bool { digit := []string{"0", "1", "2", "3", "4", "5", "6", "7", "8", "9"} for _, item := range digit { if data == item { return true } } return false } func IsDigit(data string) bool { for _, item := range data { if IsSingleDigit(string(item)) { continue } else { return false } } return true } func main() { a := "12345" fmt.Println(IsDigit(a)) }
weixin_38066102 2019-09-20
  • 打赏
  • 举报
回复
推荐你用正则表达式,或者ASCII值判断 比如正则的话,判断字符串是否全数字: ```go import( "fmt" "regexp" ) func main(){ pattern := "\\d+" //反斜杠要转义 str := "124534" result,_ := regexp.MatchString(pattern,str) fmt.Println(result) } ```
weixin_38073691 2019-09-20
  • 打赏
  • 举报
回复
谢谢楼上二位,实现了。另外和你们分享一下,我自己后来想到的办法,可以判断小数点。 //判断是不是数字 func IsNum(s string) bool { _, err := strconv.ParseFloat(s, 64) return err == nil } 不知道这样写有没有问题?
weixin_38077401 2019-09-20
  • 打赏
  • 举报
回复
2楼的很明显的错误啊。。。用这个方式,去匹配"哈哈哈123",返回也是true regexp.MatchString:判断是否包含正则表达式 pattern 所匹配的子串 或者pattern加上强制开头^结尾$符号: pattern := `^(\d+)$`
weixin_38080744 2019-09-20
  • 打赏
  • 举报
回复
用 strconv.Atoi 去做转换,成功的是数字,失败的是字符

477

社区成员

发帖
与我相关
我的任务
社区描述
其他技术讨论专区
其他 技术论坛(原bbs)
社区管理员
  • 其他技术讨论专区社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧