分享
  1. 首页
  2. 文章

golang统计出其中英文字母、空格、数字和其它字符的个数

Csir · · 3789 次点击 · · 开始浏览
这是一个创建于 的文章,其中的信息可能已经有所发展或是发生改变。

方法一

通过ASCII码表判断并统计

package main
import "fmt"
func charactortype() {
 var s2 string = "112aaaaFGG123 *&^%"
 var e,s,d,o int
 for i := o; i < len(s2); i++ {
 switch {
 case 64 < s2[i] && s2[i] < 91:
 e += 1
 case 96 < s2[i] && s2[i] < 123:
 e += 1
 case 47 < s2[i] && s2[i] < 58:
 d += 1
 case s2[i] == 32:
 s += 1
 default:
 o += 1
 }
 }
 fmt.Printf("字符串英文字符个数是: %d\n",e)
 fmt.Printf("字符串数字字符个数是: %d\n",d)
 fmt.Printf("字符串空格字符个数是: %d\n",s)
 fmt.Printf("字符串其它字符个数是: %d\n",o)
}
func main() {
 charactortype()
}

方法二

通过regexp正则表达式匹配并统计

package main
import (
 "fmt"
 "regexp"
)
// 练习四: 统计一个字符串的字母,数字,空格,其他字符个数
func statisticalCharacterNumber(s string) {
 // 示例字符串
 // var s = "MemTotal: 100111 KB"
 // 创建正则匹配字母、数字、空格
 // \d 匹配数。 MustCompile必须
 var rNum = regexp.MustCompile(`\d`)
 // [a-zA-Z] 匹配大小写字母
 var rCharacter = regexp.MustCompile("[a-zA-Z]")
 // 匹配空格
 var rBlank = regexp.MustCompile(" ")
 // 定义其它字符变量
 var specialcharacter int
 // 获取数字的个数
 num := len(rNum.FindAllStringSubmatch(s,-1))
 
 // 获取字母的个数
 character := len(rCharacter.FindAllStringSubmatch(s,-1))
 // 获取空格的个数
 blank := len(rBlank.FindAllStringSubmatch(s,-1))
 fmt.Printf("数字个数%d\n",num)
 fmt.Printf("字母个数%d\n",character)
 fmt.Printf("空格个数%d\n",blank)
 //其它字符
 specialcharacter = len(s) - num - character - blank
 fmt.Printf("其它字符个数%d\n",specialcharacter)
 fmt.Printf("总个数%d\n",len(s))
}
func main() {
 statisticalCharacterNumber("MemTotal: 100111 KB")
}

有疑问加站长微信联系(非本文作者)

入群交流(和以上内容无关):加入Go大咖交流群,或添加微信:liuxiaoyan-s 备注:入群;或加QQ群:692541889

关注微信
3789 次点击
添加一条新回复 (您需要 后才能回复 没有账号 ?)
  • 请尽量让自己的回复能够对别人有帮助
  • 支持 Markdown 格式, **粗体**、~~删除线~~、`单行代码`
  • 支持 @ 本站用户;支持表情(输入 : 提示),见 Emoji cheat sheet
  • 图片支持拖拽、截图粘贴等方式上传

用户登录

没有账号?注册
(追記) (追記ここまで)

今日阅读排行

    加载中
(追記) (追記ここまで)

一周阅读排行

    加载中

关注我

  • 扫码关注领全套学习资料 关注微信公众号
  • 加入 QQ 群:
    • 192706294(已满)
    • 731990104(已满)
    • 798786647(已满)
    • 729884609(已满)
    • 977810755(已满)
    • 815126783(已满)
    • 812540095(已满)
    • 1006366459(已满)
    • 692541889

  • 关注微信公众号
  • 加入微信群:liuxiaoyan-s,备注入群
  • 也欢迎加入知识星球 Go粉丝们(免费)

给该专栏投稿 写篇新文章

每篇文章有总共有 5 次投稿机会

收入到我管理的专栏 新建专栏