gpt4 book ai didi

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

转载 作者:qq735679552 更新时间:2022-09-28 22:32:09 25 4
gpt4 key购买 nike

CFSDN坚持开源创造价值,我们致力于搭建一个资源共享平台,让每一个IT人在这里找到属于你的精彩世界.

这篇CFSDN的博客文章超简单C#获取带汉字的字符串真实长度(单个英文长度为1,单个中文长度为2)由作者收集整理,如果你对这篇文章有兴趣,记得点赞哟.

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

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

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

?
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;
     }

运行结果如下图:

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

也可以用这个获取长度:

?
1
int i = system.text.encoding. default .getbytes(s).length;

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

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

最后此篇关于超简单C#获取带汉字的字符串真实长度(单个英文长度为1,单个中文长度为2)的文章就讲到这里了,如果你想了解更多关于超简单C#获取带汉字的字符串真实长度(单个英文长度为1,单个中文长度为2)的内容请搜索CFSDN的文章或继续浏览相关文章,希望大家以后支持我的博客! 。

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com