超简单C#获取带汉字的字符串真实长度(单个英文长度为1,单个中文长度为2)

作者:wdc 时间:2021-11-13 20:37:55 

正常情况下,我们是直接去string的length的,但是汉字是有两个字节的,所以直接用length是错的。如下图:

超简单C#获取带汉字的字符串真实长度(单个英文长度为1,单个中文长度为2)

所以应该用以下代码来获取长度:


private void button1_Click(object sender, EventArgs e)
   {
     string s = textBox1.Text;
     int i = GetLength(s);
     MessageBox.Show(i.ToString());
   }

public static int GetLength(string str)
   {
     if (str.Length == 0)
       return 0;
     ASCIIEncoding ascii = new ASCIIEncoding();
     int tempLen = 0;
     byte[] s = ascii.GetBytes(str);
     for (int i = 0; i < s.Length; i++)
     {
       if ((int)s[i] == 63)
       {
         tempLen += 2;
       }
       else
       {
         tempLen += 1;
       }
     }
     return tempLen;
   }

运行结果如下图:

超简单C#获取带汉字的字符串真实长度(单个英文长度为1,单个中文长度为2)

也可以用这个获取长度:


int i = System.Text.Encoding.Default.GetBytes(s).Length;

通过系统提供函数我们就可以获取中文的真实长度,是不是很简单

来源:http://www.cnblogs.com/haibing0107/p/5825600.html

标签:C#字符串
0
投稿

猜你喜欢

  • SpringBoot整合activemq的案例代码

    2023-11-06 18:41:37
  • Android垂直切换的圆角Banner与垂直指示器相关介绍与应用详解

    2023-01-09 02:59:15
  • java服务器的简单实现过程记录

    2023-01-18 06:44:34
  • java线程并发控制同步工具CountDownLatch

    2022-09-02 12:18:06
  • Spring Boot实现发送邮件

    2023-11-08 22:19:40
  • Java中static静态变量的初始化完全解析

    2023-11-27 21:03:39
  • IDEA中sout快捷键无效问题的解决方法

    2023-11-28 21:27:02
  • 验证码的三个常见漏洞和修复方法

    2023-10-25 17:46:26
  • Java实现五子棋游戏的完整代码

    2022-07-01 15:32:34
  • Android View移动的3种方式总结

    2022-04-29 02:04:47
  • C#使用Socket实现局域网聊天

    2021-07-20 02:13:20
  • Android优雅地处理按钮重复点击的几种方法

    2021-11-23 05:09:14
  • Java枚举的七种常见用法总结(必看)

    2022-10-10 08:38:43
  • 在eclipse中中文汉字乱码的解决方案

    2023-11-25 10:13:27
  • Spring探秘之如何妙用BeanPostProcessor

    2021-07-01 22:41:46
  • c# DevExpress gridcontrol日期行的显示格式设置

    2022-07-11 05:28:52
  • Android4.4 WebAPI实现拍照上传功能

    2023-08-17 00:46:21
  • C#利用性能计数器监控网络状态

    2022-01-05 00:13:53
  • Spring如何解决单例bean线程不安全的问题

    2023-12-18 23:50:20
  • Android获取和读取短信验证码的实现方法

    2021-09-06 07:29:17
  • asp之家 软件编程 m.aspxhome.com