服务器之家:专注于VPS、云服务器配置技术及软件下载分享
分类导航

PHP教程|ASP.NET教程|Java教程|ASP教程|编程技术|正则表达式|C/C++|IOS|C#|Swift|Android|VB|R语言|JavaScript|易语言|vb.net|

服务器之家 - 编程语言 - C# - C#统计字符串的方法

C#统计字符串的方法

2022-07-16 10:49茗香淡然 C#

这篇文章主要为大家详细介绍了C#统计字符串的方法,具有一定的参考价值,感兴趣的小伙伴们可以参考一下

本文实例为大家分享了C#字数统计(字母、数字、汉字、符号)的具体代码,供大家参考,具体内容如下

?
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
namespace 测试1
 
{
 public partial class Form1 : Form
 {
 public Form1()
 {
  InitializeComponent();
  this.richTextBox1.Text = "g你\rs\rs你好吗d dsDDDDDDDDddssssss、‘\\奇巧';‘l;''''sssssssssssssssssssssssssssssssssssssssssssssssssssssssssasdddddddddddddddddddd\tddddddddddddddddddddddddddddddddddddddddddddddddda";
 }
 
 bool skipSpace = true;
 
 //窗口加载
 private void Form1_Load(object sender, EventArgs e)
 {
  richTextBox1.Focus();
  int cnt1=0, cnt2=0, cnt3=0, cnt4=0;
  if (this.richTextBox1.Text != null)
  {
  string sLine;
  string s = richTextBox1.Text;
  if (skipSpace)
  {
   {
   sLine = s.Replace(" ?", "").Replace(" ", "").Replace("\t", "").Replace("\n", "").Replace("\r", "");
   cnt2 += getByteLength(sLine);
   cnt1 += getWordLength(sLine);
   cnt3 += getdigitalLength(sLine);
   cnt4 += getcharLength(sLine);
   textBox5.Text = cnt1.ToString();//字数
   textBox6.Text = cnt2.ToString();//字节数量(不含" ","\t","\n","\r"," ?")
   textBox7.Text = cnt3.ToString();//数字数量
   textBox8.Text = cnt4.ToString();//字母数量
   textBox9.Text = (cnt2 - cnt1).ToString();//汉字数量
   textBox10.Text = (cnt2 - cnt3 - cnt4 - (cnt2 - cnt1) * 2).ToString();//符号数量
   }
  }
  }
 }
 
 //richTextBox1.text内容改变事件
 private void richTextBox1_TextChanged(object sender, EventArgs e)
 {
  bool skipSpace = true;
  int cnt1=0, cnt2=0, cnt3=0, cnt4=0;
  if (this.richTextBox1.Text != null)
  {
  string sLine;
  string s = richTextBox1.Text;
  if (skipSpace)
  {
   sLine = s.Replace(" ?", "").Replace(" ", "").Replace("\t", "").Replace("\n", "").Replace("\r", "");
   cnt2 += getByteLength(sLine);
   cnt1 += getWordLength(sLine);
   cnt3 += getdigitalLength(sLine);
   cnt4 += getcharLength(sLine);
   textBox5.Text = cnt1.ToString();//字数
   textBox6.Text = cnt2.ToString();//字节数量(不含" ","\t","\n","\r"," ?")
   textBox7.Text = cnt3.ToString();//数字数量
   textBox8.Text = cnt4.ToString();//字母数量
   textBox9.Text = (cnt2 - cnt1).ToString();//汉字数量
   textBox10.Text = (cnt2 - cnt3 - cnt4 - (cnt2 - cnt1)*2).ToString();//符号数量
  }
  }
 }
 
  /// <summary>
 /// 返回字数
 /// </summary>
 /// <param name="s"></param>
 /// <returns></returns>
 private int getWordLength(string s)
 {
  if (s != null)
  return s.Length;
  else
  return 0;
 }
 
 /// <summary>
 /// 返回数字(0~9)字数数量
 /// </summary>
 /// <param name="s"></param>
 /// <returns></returns>
 private int getdigitalLength(string s)
 {
  int lx = 0;
  char[] q = s.ToCharArray();
  for (int i = 0; i < q.Length; i++)
  {
  if ((int)q[i] >= 48 && (int)q[i] <= 57)
  {
   lx += 1;
  }
  }
  return lx;
 }
 
 /// <summary>
 /// 返回字母(A~Z-a~z)字数数量
 /// </summary>
 /// <param name="s"></param>
 /// <returns></returns>
 private int getcharLength(string s)
 {
  int lz = 0;
  char[] q = s.ToLower().ToCharArray();//大写字母转换成小写字母
  for (int i = 0; i < q.Length; i++)
  {
  if ((int)q[i] >= 97 && (int)q[i] <= 122)//小写字母
  {
   lz += 1;
  }
  }
  return lz;
 }
 
 /// <summary>
 /// 返回字节数
 /// </summary>
 /// <param name="s"></param>
 /// <returns></returns>
 private int getByteLength(string s)
 {
  int lh = 0;
  char[] q = s.ToCharArray();
  for (int i = 0; i < q.Length; i++)
  {
  if ((int)q[i] >= 0x4E00 && (int)q[i] <= 0x9FA5) // 汉字
  {
   lh += 2;
  }
  else
  {
   lh += 1;
  }
  }
  return lh;
 }
 }
}

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持服务器之家。

原文链接:https://blog.csdn.net/ou832339/article/details/20343439

延伸 · 阅读

精彩推荐
  • C#C# RichTextBox制作文本编辑器

    C# RichTextBox制作文本编辑器

    这篇文章主要为大家详细介绍了C# RichTextBox制作文本编辑器的方法,具有一定的参考价值,感兴趣的小伙伴们可以参考一下...

    飞翔的月亮4042021-12-31
  • C#C#使用NPOI上传excel

    C#使用NPOI上传excel

    这篇文章主要为大家详细介绍了C#使用NPOI上传excel的相关资料,具有一定的参考价值,感兴趣的小伙伴们可以参考一下...

    勤奋的小鑫09462022-01-05
  • C#C#实现简单的loading提示控件实例代码

    C#实现简单的loading提示控件实例代码

    本文通过实例代码给大家介绍了C#实现简单的loading提示控件功能,代码非常简单,具有参考借鉴价值,需要的朋友参考下吧...

    季末的寂寞5602022-01-21
  • C#C#实现的文件批量重命名功能示例

    C#实现的文件批量重命名功能示例

    这篇文章主要介绍了C#实现的文件批量重命名功能,结合具体实例形式分析了C#针对文件的遍历、属性修改相关操作技巧,需要的朋友可以参考下...

    a7719485247582022-01-12
  • C#C# 根据表格偶数、奇数加载不同颜色

    C# 根据表格偶数、奇数加载不同颜色

    这篇文章主要介绍了C# 根据表格偶数、奇数加载不同颜色,需要的朋友可以参考下...

    闫驚鏵3442022-01-22
  • C#C#简单实现显示中文格式星期几的方法

    C#简单实现显示中文格式星期几的方法

    这篇文章主要介绍了C#简单实现显示中文格式星期几的方法,涉及C#常见的日期与时间以及字符串转换等相关操作技巧,需要的朋友可以参考下...

    HTL6822021-11-30
  • C#C# 设计模式系列教程-观察者模式

    C# 设计模式系列教程-观察者模式

    将一个系统分割成一个一些类相互协作的类有一个不好的副作用,那就是需要维护相关对象间的一致性。我们不希望为了维持一致性而使各类紧密耦合,这...

    Wang Juqiang10122021-11-23
  • C#C#中Winform获取文件路径的方法实例小结

    C#中Winform获取文件路径的方法实例小结

    这篇文章主要介绍了C#中Winform获取文件路径的方法,以实例形式较为详细的总结了WinForm关于路径操作的常用技巧,具有一定参考借鉴价值,需要的朋友可以参考...

    蓝图4332021-10-28