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

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

?

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

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;

    }

运行结果如下图:

也可以用这个获取长度:

?

1

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

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

原文链接:http://www.cnblogs.com/haibing0107/p/5825600.html

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

  1. c#获取带有汉字的字符串长度

    c#获取带有汉字的字符串长度 不知道大家注意没,用c#下自带的str.Length方法获得字符串str长度的时候,返回的总是字符的个数,但是如果字符串中包含汉字的话,一个汉字是占两个字符长度的,获取的 ...

  2. java excel md5_EXCEL VBA计算带汉字的字符串的MD5值(VBA转UTF-8保存)

    操作思路: 1.使用 ADODB.stream 把字符串转换为UFT-8的编码集存储到文件 AA 2.使用调用windows命令行CertUtil -hashfile c:\11\AA md5 对文件 ...

  3. php从一个字符串中过滤掉英文,php过滤只保留中文,英文以及数字的方法

    今天在开发一个关于QQ号登录的功能时,发现获取的QQ号昵称中有的带有一些特殊的字符.而这些带有特殊字符的昵称在其它功能中调用时会发生一些判断错误,所以就写了一个过滤的正规表达式,用来过滤昵称中的特殊字 ...

  4. 解决scanf无法完整获取带空格字符串问题

    一般情况下我们都会选择用scanf获取字符串,但是当字符串中含有空格时就会出现以下情况 #include<stdio.h> int main() {char arr[10];scanf(& ...

  5. 汉字转拼音(纯html实现),JS实现超简单的汉字转拼音功能示例

    本文实例讲述了JS实现超简单的汉字转拼音功能.分享给大家供大家参考,具体如下: /** * 中文字符串转化为拼音 * alert(convertToPinyinLower("你好啊" ...

  6. 字符串正反连接java_字符串正反连接(Java实现,超简单)

    解题思路:先用java.io包里面的BufferedReader类来对InputStreamReader类进行包装,实现快速输入字符串以节约时间,然后用完后将输入流关闭.输入完了以后调用java.la ...

  7. 【微信小程序系列】微信小程序超简单教程,基本语法,获取用户基本数据信息,实现对云数据库的增删改查及小程序外部api的引用示例(附源码)

    [微信小程序系列]微信小程序超简单教程 小程序项目结构 静态页面的构成 HTML:结构 css:样式 js:行为 小程序 页面全部存放在pages, 而且pages目录只能存放页面 页面包括4个文件, ...

  8. 【web前端特效源码】使用HTML5+CSS3+JavaScript制作一个复古手机键盘(带声音)的动画效果~~适合初学者~超简单~

    b站视频演示效果: [web前端特效源码]使用HTML5+CSS3制作一个复古手机键盘(带声音)的动画效果~~适合初学者~超简单~ |前端开发|IT软件 效果图: 完整代码: <!DOCTYPE ...

  9. js 超简单 判断是否字符串是否为纯数字

    js 超简单 判断是否字符串是否为纯数字 if(Number(num)+'' !==NaN+'' ){console.log('是纯数字') }else{console.log('不是纯数字') }

最新文章

  1. find name 模糊匹配_MYSQL关于find_in_set()函数的使用详解和like的区别之处
  2. 《MonkeyRunner原理剖析》第九章-MonkeyImage实现原理 - 概览
  3. 云场景实践研究第34期:加和科技
  4. 程序间数据共享与传递(2):EXPORT/IMPORT、SAP/ABAP Memory
  5. CentOS 6.x搭建Open***实现双IDC互联
  6. 在CRM呼叫中心的搜索结果点击Edit按钮后的处理逻辑
  7. [ARC072C]Alice in linear land(dp,贪心)
  8. python机器人算法_DBscan算法及其Python实现
  9. Unity Shader: Shader粒子广告牌
  10. linux socket编程web服务器实现报文解析,[Socket][网络编程]程序范例:Linux下连接WEB服务器...
  11. xftp、xshell连接远程服务器,所选的用户密钥未在远程主机上注册
  12. 正则化regularization
  13. libiconv android,iconv库 android ndk可运行
  14. 建模软件MAYA最详细的教程介绍来了
  15. threejs修改camera的lookAt无效怎么办
  16. iif能用到mysql中吗_数据库iif
  17. 查看mysql 版本号 (3种)
  18. Java模拟实现ATM系统
  19. 计算机连接不上蓝牙鼠标,win7系统蓝牙鼠标连接不上的解决方法
  20. 代码之外——醒世良言

热门文章

  1. MacBook Pro(13 英寸,2011 年末)A1278 满血复活记(安装Catalina和Windows11双系统)
  2. 学员_国培阶段性学习心得体会
  3. mysql基础10(SQL逻辑查询语句执行顺序)
  4. Hadoop集群搭建Hbase集群
  5. 网络安全高级人才应该具备的安全能力
  6. 小白入门计算机视觉第一步——编程+cv软件安装
  7. Duchefa丨D5124 MD5A 培养基中英文说明书
  8. [NOIP2007 普及组] 守望者的逃离
  9. 如何详细判断一只股票的支撑线与阻力线
  10. 算法高级部分--并查集